python json dict iterate {key:value}是一样的

时间:2015-03-08 05:46:48

标签: python json dictionary

我正在读一个json文件;看起来类似于:

[
  {
    "Destination_IP": "8.8.4.4",
    "ID": 0,
    "Packet": 105277
  },
  {
    "Destination_IP": "9.9.4.4",
    "ID": 0,
    "Packet": 105278
  }
]

当我解析json时:

for json_dict in data:
    for key,value in json_dict.iteritems():
        print("key: {0} | value: {0}".format(key, value))

我得到了:

key: Destination_IP | value: Destination_IP

我尝试使用.items(),我尝试通过iterkeys()keys()迭代密钥无效。

我可以通过json_dict['Destination_IP']直接调用它,然后返回值。

for json_dict in data:
    if 'Destination_IP' in json_dict.keys():
        print json_dict['Destination_IP']

返回:

key: Destination_IP | value: 8.8.4.4

我正在使用python 2.7,所以对于运行值部分的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:12)

更改字符串格式索引

for json_dict in data:
    for key,value in json_dict.iteritems():
        print("key: {0} | value: {1}".format(key, value))

或者不使用索引:

for json_dict in data:
    for key,value in json_dict.iteritems():
        print("key: {} | value: {}".format(key, value))

您也可以使用名称而不是索引:

for json_dict in data:
    for key,value in json_dict.iteritems():
        print("key: {key} | value: {value}".format(key=key, value=value))

答案 1 :(得分:2)

您根本不需要指定索引:

for key, value in json_dict.iteritems():
    print("key: {} | value: {}".format(key, value))