Python多行JSON和变量

2024-04-28 13:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python(v2.7)编码一个有点大的JSON,但在输入变量时遇到了困难!

由于JSON是多行的,为了保持代码整洁,我决定使用三重双引号使其看起来如下:

my_json = """{
        "settings": {
                "serial": "1",
                "status": "2",
                "ersion": "3"
        },
        "config": {
                "active": "4",
                "version": "5"
        }
}"""

对它进行编码并输出对我来说很好,但我不确定如何更改我的数字并用可变字符串替换它们。我试过:

    "settings": {
            "serial": 'json_serial',

但没用。任何帮助都将不胜感激!


Tags: 代码configjson编码settingsversionmystatus
2条回答

如果您绝对坚持使用字符串连接来生成JSON,而且要清楚,您绝对不应该这样做,那么要完全确定您的输出是有效的JSON,唯一的方法就是生成用JSON生成器替换的子字符串。即:

'''"settings" : {
  "serial"   : {serial},
  "version"  : {version}
}'''.format(serial=json.dumps("5"), version=json.dumps(1))

但是不要。真的,真的不要。The answer by @davidejones是这个场景的正确选择。

为什么不把它做成一个字典并设置变量,然后使用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))

相关问题 更多 >