Python提取lis中嵌套JSON中的所有键值

2024-09-28 01:33:41 发布

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

我有一个json,如下所示:

{"widget": {
    "debug": "on",
    "window": {
        "title": "SampleWidget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}

我需要提取所有的键值对。e、 g.debug=on,title=SampleWidget,name=main_window等等。 我怎么才能用一般的方法来做这个呢?我的意思是json可以是示例中的任何其他类型,但过程应该是相同的。在


Tags: namedebugjsontitlemainonwidgetwindow
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:41
data = {"widget": { "debug": "on", "window": { "title": "SampleWidget", "name": "main_window", "width": 500, "height": 500 }, "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250, "vOffset": 250, "alignment": "center" }, "text": { "data": "Click Here", "size": 36, "style": "bold", "name": "text1", "hOffset": 250, "vOffset": 100, "alignment": "center", "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } }} 

def pairs(d):
    for k, v in d.items():
        if isinstance(v, dict):
            yield from pairs(v)
        else:
            yield '{}={}'.format(k, v)

print(list(pairs(data)))
^{pr2}$

相关问题 更多 >

    热门问题