在 Python 中解析多级 JSON

Posted

技术标签:

【中文标题】在 Python 中解析多级 JSON【英文标题】:Parse multiple level of JSON in Python 【发布时间】:2021-12-28 23:39:17 【问题描述】:

我正在尝试解析 item 并将其放在同一级别的 products 中,如果 item 具有多个值,我将获得多个具有相同 item_id 的产品等。

    data = event['products']['item']
    item = []
    while number < len(data)
        item.append(data[number])
        number = number+1

【问题讨论】:

【参考方案1】:

您需要在每次循环中复制event['products'],并将data[number] 合并到其中。

products = event['products']
result = []
for item in products['item']:
    new_prod = products.copy()
    del new_prod['item']
    new_prod.update(item)
    result.append(new_prod)

【讨论】:

但是产品和项目都在数组中。我认为这会对更新有问题 它正在创建一个新数组,它所在的数组不相关。【参考方案2】:

其中一种方法;

data = 
        "products": [
            
                "created_time": "1234567890",
                "updated_time": "1234567890",
                "item": [
                    
                        "Status": "active",
                        "quantity": 59,
                        "Images": []
                    ,
                    
                        "Status": "passive",
                        "quantity": 60,
                        "Images": []
                    
                ],
                "item_id": 123,
                "primary_category": 345,
                "marketImages": [],
                "attributes": 
                    "name": "Sample"
                
            
        ]

output = 
output['products'] = []
for product in data['products']:
    for item in product['item']:
        product1 = product.copy()
        del product1['item']
        product1.update(item)
        output['products'].append(product1)
print (output)

输出:

'products': ['created_time': '1234567890', 'updated_time': '1234567890', 'item_id': 123, 'primary_category': 345, 'marketImages': [], 'attributes': 'name': 'Sample', 'Status': 'active', 'quantity': 59, 'Images': [], 'created_time': '1234567890', 'updated_time': '1234567890', 'item_id': 123, 'primary_category': 345, 'marketImages': [], 'attributes': 'name': 'Sample', 'Status': 'passive', 'quantity': 60, 'Images': []]

【讨论】:

以上是关于在 Python 中解析多级 JSON的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 使用合理的 null 安全性将多级 JSON 解析为类

解析一个难的 MongoDB 字段(带有多级数组)

使用 Codable 解析多级 JSON

通过 gson (okhttp) 解析多级 json

带有多级解析器/子解析器的 Argparse 可选参数

php如何解析多级xml报文?