当我使用以下代码时,即使创建了csv文件,我仍然会收到错误。我需要帮助,对python来说还是个新手。
我收到的错误是“Traceback(最近一次呼叫最后一次): 文件“/home/ubuntu/workspace/parse-json.py”,第34行,in values = [x.encode('utf8')for item in ['fields']。values()] TypeError:字符串索引必须是整数“
import json
from pprint import pprint
with open('data.json') as data_file:
data = json.load(data_file)
#pprint(data)
# calc number of alert records in json file
x = len(data['alerts'])
count = 0
while (count < x):
#print 'COUNT = ', count
print data['alerts'][count]['message']
print data['alerts'][count]['tags']
print data['alerts'][count]['teams']
print data['alerts'][count]['id']
count = count + 1
import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = csv.writer(open('yes.csv', 'wb+'))
for item in data:
values = [ x.encode('utf8') for x in item['fields'].values() ]
f.writerow([item['pk'], item['model']] + values)
答案 0 :(得分:0)
您需要检查数据结构。
基本上错误是说item
不是字典。
从我在您的代码中看到的,您正在迭代data
,但数据不是字典列表,而是字典本身。
如果要遍历dict中的元素,则应执行以下操作:
for key, value in data.items():
或者如果您只想迭代值:
for value in data.values():