首页 > 解决方案 > 用于从 json 文件中过滤嵌套数据的 Python 脚本

问题描述

我正在尝试从嵌套的 JSON 文件中抓取"QUANTITE"数据,我的目标是在特定的嵌套中提取值。JSON 文件有一个重复的模式:

    "T_INDICATEUR_QUANTITEs": [
        {
            "T_INDICATEUR_NORMEs": null,
            "T_PHASE_NORMEs": null,
            "ID_INDICATEUR_QUANTITE": 706222,
            "ID_PRODUIT": 5881,
            "QUANTITE": 18.8,
            "ID_INDICATEUR_NORME": 32,
            "ID_PHASE_NORME": 23
        },
        {
            "T_INDICATEUR_NORMEs": null,
            "T_PHASE_NORMEs": null,
            "ID_INDICATEUR_QUANTITE": 706223,
            "ID_PRODUIT": 5881,
            "QUANTITE": 20.6,
            "ID_INDICATEUR_NORME": 32,
            "ID_PHASE_NORME": 39
        },
        {
            "T_INDICATEUR_NORMEs": null,
            "T_PHASE_NORMEs": null,
            "ID_INDICATEUR_QUANTITE": 706224,
            "ID_PRODUIT": 5881,
            "QUANTITE": 0.191,
            "ID_INDICATEUR_NORME": 32,
            "ID_PHASE_NORME": 24
        },

每个"QUANTITE"值都有特定的一对"ID_INDICATEUR_NORME""ID_PHASE_NORME"

我如何才能"QUANTITE"获得特定夫妇的价值"ID_INDICATEUR_NORME""ID_PHASE_NORME"

提前致谢!

完整文件的链接

标签: pythonjsonpython-3.xweb-scraping

解决方案


下面是最简单的方法,

import json

# Loding the data
with open('#File path or website URL here','r') as file:
    content = file.read()

# Converting json_data to python dictionary format
json_data = json.loads(content)

quantite = -1 # -1 for not found case
for data in json_data['T_INDICATEUR_QUANTITEs']:
    
    # Checking for specific pair
    if data['ID_INDICATEUR_NORME'] == x and data['ID_PHASE_NORME'] == y:
        quantite = data['QUANTITE'] 
        break

print(f"QUANTITE value is {quantite}")

这里x和是您的和y的具体值。ID_INDICATEUR_NORMEID_PHASE_NORME

如果您的特定对匹配,则此代码段将返回QUANTITE值,否则它将返回-1


推荐阅读