python - 如何循环插入具有复杂结构的嵌套字典
问题描述
我有一个具有这种结构的 dict 对象
{"a": '{"b": "c"}'}
我想使用循环将不同的值插入该"c"
区域以在项目的其他地方使用。问题是 b 和 c 周围的单引号使这更加困难。
我试过了:
{"a": '{"b": "{}"}.format("d")'}
但这会返回字典而不评估格式函数。
我也试过:
{"a": '{"b": "{}"}'.format("d")}
但这会返回错误。我经历了 2 个小时的组合和 SO 问题,例如(this、this和this),但我意识到我需要知道他们在做什么的人的帮助。
一个可行的解决方案如下所示:
x = {"a": '{"b": "c"}'}
val = "d"
magic(x, val)
>>> {"a": '{"b": "d"}'}
注意:对于询问“为什么采用这种格式”的评论?我没有创建这些对象,因此它们不是我的选择。我有一个已连接的 api。我正在提取当前数据,对其进行更改,然后将其上传回来。没有机会“不使用字符串文字”。这就是 api 帖子所期望的。我现在无法要求维护人员更改他们的存储系统
解决方案
这应该适合你
import json
obj = {"a": '{"b": "c"}'}
inner_a = json.loads(obj['a'])
inner_a['b'] = 'd'
obj['a'] = json.dumps(inner_a)
推荐阅读
- c# - 使用 c# 从 Azure 存储帐户表中检索记录,同时使用 xamarin 开发跨平台应用程序给出错误
- php - 用错误的密码登录但仍然有效
- bash - 有没有办法内联 Unicode 转义序列?
- c - 为什么我对 K&R 练习 2-3 的解决方案不起作用?
- vba - 如何循环访问多个网站的“getElementById”VBA?
- ruby-on-rails - RAILS 如何构建嵌套表单以使用复选框通过关联的对象布尔属性更改 has_many?
- python - 这里正在执行什么减法运算?
- python - 属性错误:函数没有属性“desc”
- python - Heroku 上的 urllib 错误
- .net - msbuild 中使用的相互矛盾的程序集版本