>>> salaries = '{"Alfred" : 300, "Jane" : 400 }'
>>> sal = json.loads(salaries)["Hritik"]=0
>>> sal
0
>>> sal = json.loads(salaries)
>>> sal["Hritik"]=0
>>> sal
{'Alfred': 300, 'Jane': 400, 'Hritik': 0}
>>> type(json.loads(salaries))
<class 'dict'>
>>> type(sal)
<class 'dict'>
为什么我不能像处理dict sal一样,在json.loads
内联返回的dict
中追加?
json.loads
不只是返回一个dict
并且应该和其他dict一样吗?在
你可以这样做,但是你只需丢弃这个dict,它对
salaries
变量没有任何影响,而且你没有将dict赋给sal
。您已将0分配给sal
。在当您分配
sal = json.loads(salaries)
时,这将生成一个与第一个dict无关的新dict,然后您实际上将新dict分配给sal
。当您通过sal
查看dict时,对这个新dict的修改仍然可见。在赋值语句}都将采用{}的值。在
x = y = z
意味着x
和{例如,请看赋值
a = b = 2
的字节码:使用}被分配给相同的值2。在
4 STORE_NAME
,a首先分配给2,然后是7 STORE_NAME
,其中{所以,和
^{pr2}$sal
接收值0
。另外,当您调用json.loads
时,会创建一个临时变量,并对其进行修改,随后将丢失引用。在为了让这个工作,你需要把它分成两部分,就像你已经做的那样。在
相关问题 更多 >
编程相关推荐