如何只获得JSON ans的一个特定方面

2024-09-30 01:22:14 发布

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

所以我有下面的JSON块:

b'{"data":[{"categories":[{"id":"IAB3","label":"Business","parent":"IAB3","score":"0.223819028028717559","confident":true}],"url":"megatel.de"}]}'

我只需要一个包含第一个label字段内容的字符串


Tags: idjsontrueurl内容datadebusiness
3条回答
x = b'{"data":[{"categories":[{"id":"IAB3","label":"Business","parent":"IAB3","score":"0.223819028028717559","confident":true}],"url":"megatel.de"}]}' 
(x.split('"label":')[1]).split(",")[0][1:-1]
>>'Business'

下面的代码段以Business的形式返回输出

import json
data = json.loads('{"data":[{"categories":[{"id":"IAB3","label":"Business","parent":"IAB3","score":"0.223819028028717559","confident":true}],"url":"megatel.de"}]}')
print(data['data'][0]['categories'][0]['label'])

如果您有更多这样的数据,您可以迭代data变量,并通过在这两个位置用iterateor替换0索引来获得所需的结果

例如,如果json如下所示

{"data":
        [
            {"categories":
                [
                    {"id":"IAB3",
                    "label":"Business",
                    "parent":"IAB3",
                    "score":"0.223819028028717559",
                    "confident":true}
                ],
            "url":"megatel.de"
            },
            {"categories":
                [
                    {"id":"IAB3",
                    "label":"Business",
                    "parent":"IAB3",
                    "score":"0.223819028028717559",
                    "confident":true}
                ],
                "url":"megatel.de"
            }
        ]
}

您可以使用以下脚本获得类似的输出

for entry in data['data']:
    for categories in entry['categories']:
        print categories['label']

如果您也可以尝试regex方法:

import re


txt = b'{"data":[{"categories":[{"id":"IAB3","label":"Business","parent":"IAB3","score":"0.223819028028717559","confident":true}],"url":"megatel.de"}]}'

pattern = r'"label":"(.*?)"'
labels = re.search(pattern, str(txt, 'utf-8')).groups()

print(labels[0])  # Business

相关问题 更多 >

    热门问题