在python中将json导入csv

时间:2016-08-09 14:39:26

标签: python json csv

当我使用以下代码时,即使创建了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)

1 个答案:

答案 0 :(得分:0)

您需要检查数据结构。 基本上错误是说item不是字典。

从我在您的代码中看到的,您正在迭代data,但数据不是字典列表,而是字典本身。

如果要遍历dict中的元素,则应执行以下操作:

for key, value in data.items():

或者如果您只想迭代值:

for value in data.values():