2017-09-25 22 views
2

私は非常に大きなjsonファイル(1,5GBなど)を持っています。私はそれをcsvに変換する必要があります。Python JSONからCSVへ変数フィールド

問題は時々余分なフィールドは次のようにありますということです:私は「タスクを実行すると

# -*- coding: utf-8 -*- 
import json, csv 
with open("items.json") as file: 
    data = json.load(file) 
    csv_data = csv.writer(open('items.csv','wb+')) 
    csv_data.writerow(['item_name','item_color','item_dimension','item_random_field','item_description') 
    for json_parsed in data: 
     csv_data.writerow([ 
      json_parsed['item']['name'], 
      json_parsed['item']['colors']['color_of_something'], 
      json_parsed['item']['dimensions']['dimensions1'], 
      json_parsed['item']['This_field_appears_sometimes'], 
      json_parsed['item']['description']['text'] 
     ]) 

:私はcsvファイルにJSONファイルを変換するために、このコードをした

[ 
    { 
     "item": { 
      "name": "something", 
      "colors": { 
       "color_of_something": "something", 
       "color_of_something2": "something", 
       "color_of_something3": "something" 
      }, 
      "dimensions": { 
       "dimensions1": "something", 
       "dimensions2": "something", 
       "dimensions3": "something" 
      }, 
      "This_field_appears_sometimes": "something", 
      "description": { 
       "text": "something" 
      } 
     } 
    }] 

KeyError例外: 'This_field_appears_sometimes'

メートルは、このエラーを取得しますこれを修正するためにいくつかのヒントやアドバイスが必要ですが、lenの検査がこのコードで動作するかどうか試してみます。

答えて

3

json_parsed['item'].get('This_field_appears_sometimes')を使用するか、またはJSONファイルを確認することができますif 'This_field_appears_sometimes' in json_parsed['item'].keys()

1

理由は「This_field_appears_sometimes」という項目がありません。

json_parsed['item'].get('This_field_appears_sometimes', '') 

またはそのキー項目

内にある場合の条件をご確認ください:

あなたは、このような「安全なGET」を使用することができ