簡體   English   中英

Python多行JSON和變量

[英]Python multi-line JSON and variables

我正在嘗試在Python(v2.7)中編碼一個有點大的JSON,我在輸入變量時遇到了麻煩!

由於JSON是多行的並且為了保持我的代碼整潔,我決定使用三重雙引號使其看起來如下:

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

要對此進行編碼,輸出它對我來說效果很好,但我不知道如何更改我在那里的數字並用變量字符串替換它們。 我試過了:

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

但無濟於事。 任何幫助,將不勝感激!

為什么不把它變成字典並設置變量然后使用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))

如果你絕對堅持使用字符串連接生成JSON - 並且,為了清楚,你絕對不應該 - 唯一的方法是完全確定你的輸出是有效的JSON是生成用JSON生成器替換的子串。 那是:

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

但不要。 真的, 真的沒有。 @davidejones的答案是這種情況的正確方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM