Python在.json中编辑/重命名键名
有没有办法更改密钥名称? 我需要更改名称Python在.json中编辑/重命名键名,python,json,key,rename,Python,Json,Key,Rename,有没有办法更改密钥名称? 我需要更改名称“Class123”,就像示例中一样。我可以更改值,但我不知道如何更改密钥名称 示例.json: { "Class123": "classvalue", "name1": { "name2": { "name3": { "Y": 158.8, "X": 201.46 }, "name4
“Class123”
,就像示例中一样。我可以更改值,但我不知道如何更改密钥名称
示例.json:
{
"Class123": "classvalue",
"name1": {
"name2": {
"name3": {
"Y": 158.8,
"X": 201.46
},
"name4": {
"Y": 159.68,
"X": 200.32
}
}
}
}
这样开始:
with open('my.json') as json1:
data = json.load(json1)
for item in data:
无法“更改”密钥名称。
最好使用pop
将值复制到另一个键:
d = {'old_name': 1}
d['new_name'] = d.pop('old_name')
print(d)
# {'new_name': 1}
差不多
your_dict[new_key] = your_dict.pop(old_key)
从dict中删除旧密钥并创建新密钥。我想在这里添加我的方法,因为它将单数命名扩展为使用密钥dict 假设您有一个示例JSON列表
ga_列表
,并且希望使用dict键names_键
更改所有名称:
names_key = { 'ga:date' : 'date' ,
'ga:bounceRate' : 'bounce' ,
'ga:newUsers' : 'new_users',
'ga:pageviews' : 'page_views',
'ga:sessions' : 'sessions',
'ga:uniquePageviews' : 'unique_page_views',
'ga:users' : 'users'
}
ga_list = [{
'ga:bounceRate': 34.478408,
'ga:date': '20151203',
'ga:newUsers': 1679,
'ga:pageviews': 550,
'ga:sessions': 307,
'ga:uniquePageviews': 467,
'ga:users': 256},
{'ga:bounceRate': 21.28534,
'ga:date': '20151204',
'ga:newUsers': 164,
'ga:pageviews': 594,
'ga:sessions': 305,
'ga:uniquePageviews': 476,
'ga:users': 252},
{'ga:bounceRate': 13.8372346,
'ga:date': '20151205',
'ga:newUsers': 152,
'ga:pageviews': 826,
'ga:sessions': 330,
'ga:uniquePageviews': 241,
'ga:users': 200}]
for row in ga_list:
for k, v in names_key.items():
for old_name in row:
if k == old_name:
row[v] = row.pop(old_name)
print(ga_list)
>>>
[{'bounce': 34.47842608,
'date': '20151203',
'new_users': 1679,
'page_views': 550,
'sessions': 307,
'unique_page_views': 467,
'users': 256},
{'bounce': 21.28534,
'date': '20151204',
'new_users': 164,
'page_views': 594,
....
'unique_page_views': 241,
'users': 200}]
在这里,所有的旧名称都根据密钥重命名
希望这对其他人有所帮助。一种方法是使用replace()函数,但请确保必须首先将JSON Dict转换为字符串,因为无法更改字典的键
json_data = json_data.replace('key_old1','Key_new1').replace('key_old2','key_new2')
希望这有帮助。
干杯 你的数据就是一本字典<代码>帮助(dict)。然后可能会将JSON转储回。d['new_name']=d.pop('old_name')感谢您这么多的帮助