我有一个非常大的json文件(如1,5gb),我需要将其转换为csv。
问题在于,有时会出现一个额外的字段:
[
{
"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"
}
}
}]
我有这段代码将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']
])
当我运行任务时,我收到此错误:
KeyError:'This_field_appears_sometimes'
需要一些提示或建议来解决这个问题,同时我会尝试对此代码进行len检查。
答案 0 :(得分:3)
你可以像这样使用“安全获取”:
json_parsed['item'].get('This_field_appears_sometimes', '')
或检查条件是否在项目
内 if 'This_field_appears_sometimes' in json_parsed['item'].keys()
答案 1 :(得分:1)
原因是某些项目中没有关键字“This_field_appears_sometimes”。
您可以使用json_parsed['item'].get('This_field_appears_sometimes')
或查看json文件