json格式

lhcgjxsq  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(424)

我对使用json还比较陌生,正在尝试使用python中的json库将字典输出到json。我的问题是格式非常具体,我不知道如何处理。具体来说,所需的格式有额外的大括号和方括号。下面是我正在转换为json的字典和所需输出的示例:


# Sample Data

sample_dict = {"office":{"50":"pencil;paper",
                      "100":"stapler;eraser"},
             "warehouse":{"50":"forklift;wrench",
                         "100":"truck,screw"}}

with open('test.json', 'w') as f:
    json.dump(sample_dict, f,indent = 4)

## Output I'm able to acheive

{
    "office": {
        "50": "pencil;paper",
        "100": "stapler;eraser"
    },
    "warehouse": {
        "50": "forklift;wrench",
        "100": "truck,screw"
    }
}

## Desired Output

[{
    {"office": {
        "50": "pencil;paper",
        "100": "stapler;eraser"
    }},
    {"warehouse": {
        "50": "forklift;wrench",
        "100": "truck,screw"
    }}
}]
jhkqcmku

jhkqcmku1#

额外的 [] 很简单-整本字典都在一个单子里。然而,额外的 {} 不是;实际上,您发布的示例不是有效的json。
此时,您需要澄清输出是应该是json还是应该匹配给定的示例。
如果输出应该是json,则需要获得正确的示例输出,然后从那里开始工作。最顶层至少是词典列表。
如果输出应该匹配给定的样本,那么它不是json,您也不会使用 json 图书馆。根据情况,您可以:
用python字符串格式化( % 或者 .format() 或者 f"..." 字符串);或
使用像jinja或mako或类似的模板库;或
如果数据结构广泛且格式一致,请编写自己的库以输出该格式。

mfpqipee

mfpqipee2#

我想你需要把“sample_dict”做成一个方括号的字符串。

import json

sample_dict = '[{"office":{"50":"pencil;paper", "100":"stapler;eraser"}, "warehouse":{"50":"forklift;wrench", "100":"truck,screw"}}]'

load=json.loads(sample_dict)
print(json.dumps(load, indent=4))

相关问题