如何在字典中解析json文件havin字典

时间:2014-05-01 09:22:06

标签: python json

我有这样的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.

这里的问题是我无法访问内部元素

2 个答案:

答案 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'))