我有这样的json文件:
{
"url": {
"188.40.0.138\n": {
"bytes": 13882,
"code": 403
},
"iantivirus.us\n": {
"bytes": 13563,
"code": 503
},
"ibmsupport.net\n": {
"bytes": 13648,
"code": 503
},
"usbnak.com\n": {
"bytes": 13779,
"code": 403
}
}
}
我想将其转换为具有以下格式的csv文件: URL,188.40.0.138 \ N,13882.403
当我使用时 (说这是加载到可变数据)
for i in data['url']"
print i['status'] # says index should be integer
print i # prints 188.40.0.138\n
print i[0:3] #prints 188.
这里的问题是我无法访问内部元素
答案 0 :(得分:1)
您的i
只是关键;您必须查找data['url'][i]
才能获得嵌套词典。
您可以使用dict.iteritems()
(Python 2)或dict.items()
(Python 3)嵌套循环:
for url, items in data.iteritems():
for item, value in items.iteritems():
print url, item, value['bytes']
如果您打算撰写CSV,请使用csv
module:
import csv
with open('output.csv', 'wb') as outfh:
writer = csv.writer(outfh)
for url, items in data.iteritems():
for item, value in items.iteritems():
writer.writerow([url, item, value['bytes']])
答案 1 :(得分:0)
for i,k in data.iteritems():
for y,z in k.iteritems():
print "url,%s,%s.%s"%(y,z.get('bytes'),z.get('code'))