【发布时间】:2017-10-12 03:33:42
【问题描述】:
我正在尝试更新如下所示的 JSON 对象的键:
results =
{
'Game':12345,
'stats':[
{
'detail':[
{
'goals':4,
'refs':{
'number':0
我目前正在手动更新每个键,如下所示
##update Game to newValue
results['newValue'] = results['Game']
del results['Game']
## update nested key "goals" to "goals_against"
results['stats'][0]['detail'][0]['goals_against'] = results['stats'][0]['detail'][0]['goals']
del results['stats'][0]['detail'][0]['goals']
必须有更好的方法,因为我发现自己必须更新结果中的多个键。例如,我还想将“number”键更新为“assis_ref”。
如果 json 文件是“简单”的,我知道如何更新密钥:即如果我可以这样做:
result['stats']['details']['refs']
然而,'stats' 和 'details' 需要 [0] 在它旁边,我假设它是我接下来要尝试的元素的索引。
【问题讨论】:
-
@DJV 这有点不同,因为我试图更新的 JSon 对象中的键是深度嵌套的,有时它需要添加下一个节点的索引,例如 [0]跨度>
-
您可以使用我发布为this answer 的代码来完成此任务。我几乎把这个问题作为那个问题的副本结束了,但我想它已经足够不同了,它应该有自己的答案,所以我会在几分钟内发布一些代码。
-
用一些简单的结构来玩弄我的代码来感受一下它的作用可能是个好主意。但如果您需要进一步解释,请告诉我。
-
如果我的回答对你有帮助,请考虑accepting它。
标签: python json dictionary