[英]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.