这是我的JSON的结构:
"docs": [
{
"key": [
null,
null,
"some_name",
"12345567",
"test_name"
],
"value": {
"lat": "29.538208354844658",
"long": "71.98762580927113"
}
},
我想将密钥添加到key
列表中。这就是我想要输出的样子:
"docs": [
{
"key": [
"key1":null,
"key2":null,
"key3":"some_name",
"key4":"12345567",
"key5":"test_name"
],
"value": {
"lat": "29.538208354844658",
"long": "71.98762580927113"
}
},
这是一个很好的方法。我尝试了这个但是没有工作:
for item in data['docs']:
item['test'] = data['docs'][3]['key'][0]
更新1
根据以下答案,我已将代码调整为:
for number, item in enumerate(data['docs']):
# pprint (item)
# print item['key'][4]
newdict["key1"] = item['key'][0]
newdict["yek1"] = item['key'][1]
newdict["key2"] = item['key'][2]
newdict["yek2"] = item['key'][3]
newdict["key3"] = item['key'][4]
newdict["latitude"] = item['value']['lat']
newdict["longitude"] = item['value']['long']
这会创建我正在寻找的JSON(我可以删除以前的列表)。如何使这个JSON在for循环之外保持不变?在循环之外,只会添加字典中的最后一个值。
答案 0 :(得分:1)
在你的第一个区块中,key是一个列表,但在你的第二个区块中,它是一个dict。您需要完全替换关键项目。
newdict = {}
for number,item in enumerate(data['docs']['key']):
newdict['key%d' % (number+1)] = item
data['docs']['key'] = newdict