Python中如何在双引号内将变量替换为实际值生成合法JSON字符串
解决方案
方法1:使用json模块生成(推荐)
因为你最终需要的是符合JSON规范的字符串,直接使用Python内置的json模块生成即可,无需手动处理任何转义逻辑,不会出现格式错误:
import json val = "O'brien" # 先构造对应的Python字典 data = {"id1": val} # 直接序列化得到JSON字符串 s1 = json.dumps(data) # 验证结果 print(s1) # 输出:{"id1": "O'brien"} print(json.loads(s1)) # 输出:{'id1': "O'brien"},完全符合要求
方法2:手动拼接字符串
如果你需要手动拼接,要注意字符串格式化方法需要写在字符串外,不能放在引号内,同时外层用单引号包裹整体可以避免转义内部的双引号:
f-string写法(Python 3.6+支持)
val = "O'brien" # 两个连续的花括号会输出单个花括号 s1 = f'{{"id1": "{val}"}}'
format写法
val = "O'brien" s1 = '{"id1": "{}"}'.format(val)
注意:手动拼接的方式仅适合确认
val中不存在双引号的场景,如果val包含双引号会破坏JSON结构,因此优先使用方法1。
内容的提问来源于stack exchange,提问作者Vikas Garud
相关产品推荐
相关产品推荐

