繁体   English   中英

根据 JSON 响应将值附加到列表

[英]Appending value to a list depending on the JSON response

我正在呼叫 API,我收到以下回复:

"items": [
                    {
                        "packagingType": "PCS",
                        "description": "[REDACTED]",
                        "productCode": "MATT",
                        "freightClass": "300",
                        "insuranceValue": 428.70999999971326,
                        "primaryReferenceNumber": null,
                        "poNumber": "[REDACTED]",
                        "skuNumber": "[REDACTED]",
                        "pluNumber": null,
                        "actualQuantity": 1,
                        "actualWeight": 125,
                        "actualWeightUnitOfMeasure": "Pounds",
                        "actualPallets": 1,
                        "actualVolume": null,
                        "actualVolumeUnitOfMeasure": "Cubic Feet",
                        "actualPackagingLength": null,
                        "actualPackagingHeight": null,
                        "actualPackagingWidth": null,
                        "actualPackagingUnitOfMeasure": "Inches",
                        "referenceNumbers": [
                            {
                                "type": "CustomerItemIdentifier1",
                                "value": "[REDACTED]"
                            },
                            {
                                "type": "OrderItemId",
                                "value": "123456789"
                            },
                            {
                                "type": "SHID",
                                "value": "[REDACTED]"
                            }
                        ],
                        "associatedStop": {
                            "pickSequenceNumber": null,
                            "dropSequenceNumber": null
                        }
                    }
                ]

但有时 API 也会发送这样的应答:

"items": [
                    {
                        "packagingType": "PCS",
                        "description": "[REDACTED]",
                        "productCode": "MISC",
                        "freightClass": "300",
                        "insuranceValue": 2500,
                        "primaryReferenceNumber": null,
                        "poNumber": "[REDACTED]",
                        "skuNumber": "[REDACTED]",
                        "pluNumber": null,
                        "actualQuantity": 1,
                        "actualWeight": 132,
                        "actualWeightUnitOfMeasure": "Pounds",
                        "actualPallets": null,
                        "actualVolume": null,
                        "actualVolumeUnitOfMeasure": "Cubic Feet",
                        "actualPackagingLength": null,
                        "actualPackagingHeight": null,
                        "actualPackagingWidth": null,
                        "actualPackagingUnitOfMeasure": "Inches",
                        "referenceNumbers": [
                            {
                                "type": "OrderItemId",
                                "value": "987654321"
                            }
                        ],
                        "associatedStop": {
                            "pickSequenceNumber": null,
                            "dropSequenceNumber": null
                        }
                    }

现在,我想要实现的是 append 当“type”等于“OrderItemId”时“referenceNumbers”下的“value”。

任何人都可以指出我正确的方向吗?

更新:这是我当前的代码块:

 for object in parsed['results']:
            if  object['event']['eventType'] in event_list:
                for item in object['event']['items']:
                    orders_event_name.append(object['event']['eventType'])
                    orders_customer_order.append(object['billToReferenceNumber'])
                    orders_reference_number.append(item['referenceNumbers']['value'])
                    orders_event_id.append(None)
                    orders_item_id.append(item['skuNumber'])
                    orders_datetime_started.append(object['eventTime'])
                    orders_seconds.append(None)
                    orders_load_number.append(object['event']['loadNumber'])
li = []
for resp in [response1, response2]:
    for i in resp['items'][0]['referenceNumbers']:
        if i['type'] == 'OrderItemId':
            li.append(i['value'])

li

Output:

['123456789', '987654321']

您的代码的答案:

for i in data:
    if i["referenceNumbers"][0]["type"] == "OrderItemId":
        orders_reference_number.append(i["referenceNumbers"][0]["value"])
        orders_event_id.append(None)
        orders_item_id.append(i['skuNumber'])

    else:
        print("Not OrderItemId")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM