首页 > 解决方案 > 如何循环插入具有复杂结构的嵌套字典

问题描述

我有一个具有这种结构的 dict 对象

{"a": '{"b": "c"}'}

我想使用循环将不同的值插入该"c"区域以在项目的其他地方使用。问题是 b 和 c 周围的单引号使这更加困难。

我试过了:

{"a": '{"b": "{}"}.format("d")'}

但这会返回字典而不评估格式函数。

我也试过:

{"a": '{"b": "{}"}'.format("d")}

但这会返回错误。我经历了 2 个小时的组合和 SO 问题,例如(thisthisthis),但我意识到我需要知道他们在做什么的人的帮助。

一个可行的解决方案如下所示:

x = {"a": '{"b": "c"}'}
val = "d"

magic(x, val)

>>> {"a": '{"b": "d"}'}

注意:对于询问“为什么采用这种格式”的评论?我没有创建这些对象,因此它们不是我的选择。我有一个已连接的 api。我正在提取当前数据,对其进行更改,然后将其上传回来。没有机会“不使用字符串文字”。这就是 api 帖子所期望的。我现在无法要求维护人员更改他们的存储系统

标签: pythondictionary

解决方案


这应该适合你

import json
obj = {"a": '{"b": "c"}'}
inner_a = json.loads(obj['a'])
inner_a['b'] = 'd'
obj['a'] = json.dumps(inner_a)

推荐阅读