json - 我需要解析字典并更新它的值
问题描述
我有一个问题陈述,我必须在其中读取 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
现在我可以在第二个循环中看到更新的数据。
推荐阅读
- java - 具有多个字段和日期的 Spring Data Paging and Sorting Repository
- facebook - 为什么我的网站无法在 Facebook Debugger 中查看?
- javascript - 在 5000 毫秒超时内未调用异步回调
- julia - Julia DSP包重采样功能错误
- go - 在 Golang 中将基类型转换为派生类型
- javascript - 你如何强制一个电子应用程序只有一个实例?
- javascript - 如何创建 Ajax 标头获取方法身份验证承载
- button - WhatsApp 内嵌按钮
- flutter - 从推送通知打开 Flutter 应用程序,当它被杀死时
- reactjs - 仅在状态增加时调用 useEffect()