我正在尝试重命名json数据的键,但是我似乎没有得到我想要的东西。您能指出这个问题吗?
import json
if __name__ == '__main__':
json_data = [
{
"Aa": "A1 value",
"Ab": "A2 Value",
"Ac": "0",
"Ad": "245",
"Ae": "some value"
},
{
"Aa": "A1 value2",
"Ab": "A2 Value2",
"Ac": "1",
"Ad": "225",
"Ae": "some value2"
}
]
vcounter = 1
for item in json_data:
for oldKey,v in item.items():
newKey = 'X'+str(vcounter)
#print(newKey)
item[newKey] = item.pop(oldKey)
vcounter += 1
print('Item:'+str(item))
print('-----------------')
vcounter = 1
输出
Item:{'Ab': 'A2 Value', 'X4': 'some value', 'X5': 'A1 value', 'X6': '0', 'X7': '245'}
-----------------
Item:{'Ab': 'A2 Value2', 'X4': 'some value2', 'X5': 'A1 value2', 'X6': '1', 'X7': '225'}
-----------------
预期输出 要重命名为X1的键到列表中各项的长度。在这种情况下,它是X1到X5
Item:{'X2': 'A2 Value', 'X5': 'some value', 'X1': 'A1 value', 'X3': '0', 'X4': '245'}
-----------------
Item:{'X2': 'A2 Value2', 'X5': 'some value2', 'X1': 'A1 value2', 'X3': '1', 'X4': '225'}
-----------------
答案 0 :(得分:1)
假设您使用的是Python 3.7+(按顺序排列了dict键),则可以使用dict理解来迭代dict值的枚举,以使用通过串联{{1 }},并带有枚举索引:
'X'
这将返回:
[{'X%s' % i: v for i, v in enumerate(d.values(), 1)} for d in json_data]