Python多行JSON和变量

use*_*843 3 python json

我正在尝试在Python(v2.7)中编码一个有点大的JSON,而我在输入变量时遇到了麻烦!

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

my_json = """{
        "settings": {
                "serial": "1",
                "status": "2",
                "ersion": "3"
        },
        "config": {
                "active": "4",
                "version": "5"
        }
}"""
Run Code Online (Sandbox Code Playgroud)

要对此进行编码,输出它对我来说效果很好,但我不知道如何更改我在那里的数字并用变量字符串替换它们.我试过了:

    "settings": {
            "serial": 'json_serial',
Run Code Online (Sandbox Code Playgroud)

但无济于事.任何帮助,将不胜感激!

dav*_*nes 13

为什么不把它变成字典并设置变量然后使用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))
Run Code Online (Sandbox Code Playgroud)

  • @ user5740843,摆脱`json.loads`调用 - 输入对象只是一个本机Python数据类型,而不是JSON,所以它已经准备好作为第一个参数传递给`json.dumps()了!完全如此.所以:`json.dumps(my_json,indent = 4,sort_keys = True)` (3认同)