我有一个问题声明,我必须读取JSON文件。使用JSON .loads()转换为字典时,JSON文件有12个键。
其中一个键('body')具有字符串类型的值。当使用json.loads()再次将此字符串转换为字典时,将得到一个字典列表。这个字典列表的长度为1000,而其中每个字典的长度为24。
我需要增加字典的数量,这样我的字典列表的新长度为2000。每个长度为24的字典都有一个唯一的键('id')。
现在,这是我的代码片段,我试图更新字典的值,如果我的键值是'id':
val = 1
for each_dict in list_of_dictionary:
for k,v in each_dict.items():
if k == 'id':
v = val
print("value is ",v)
val = val+1
O/P
value is 1
value is 2
and so on...
现在,当我试图再次查看更新的值时,我只能看到以前的值。这是代码片段:
for each_dict in list_of_dictionary:
for k,v in each_dict.items():
if k == 'id':
print("value is ",v)
O/P
value is 11123
value is 11128
and so on...
而我想要的输出和上面一样,因为我已经更新了值。
找到答案了。实际上,在第一个for-in循环中,我意识到我忘记更新字典了,这就是为什么在第二个循环中,我看不到更新的数据。因此,第一个for循环的更新代码将是:
val = 1
for each_dict in list_of_dictionary:
for k,v in each_dict.items():
if k == 'id':
temp = {k, val}
each_dict.update(temp)
val = val+1
现在我可以在第二个循环中看到更新的数据。