我正在尝试在Python(v2.7)中编码一个稍大的JSON,而我在输入变量时遇到了麻烦!
由于JSON是多行的并且为了保持我的代码整洁,我决定使用三重双引号使其看起来如下:
my_json = """{
"settings": {
"serial": "1",
"status": "2",
"ersion": "3"
},
"config": {
"active": "4",
"version": "5"
}
}"""
要对此进行编码,输出对我来说效果很好,但我不知道如何更改我在那里的数字并用变量字符串替换它们。我试过了:
"settings": {
"serial": 'json_serial',
但无济于事。任何帮助将不胜感激!
答案 0 :(得分:11)
为什么不把它变成字典并设置变量然后使用json库将它变成json
import json
json_serial = "123"
my_json = {
'settings': {
"serial": json_serial,
"status": '2',
"ersion": '3',
},
'config': {
'active': '4',
'version': '5'
}
}
print(json.dumps(my_json))
答案 1 :(得分:0)
如果你绝对坚持生成带字符串连接的JSON - 而且,要清楚,你绝对不应该 - 完全确定你的输出是有效的JSON的唯一方法是生成用JSON生成器替换的子串。那就是:
'''"settings" : {
"serial" : {serial},
"version" : {version}
}'''.format(serial=json.dumps("5"), version=json.dumps(1))
但不要。真的,真的没有。对于这种情况,The answer by @davidejones是正确的事情。