我需要从此json数组中提取键值对数据。我需要提取“ producId”之类的数据以及在父数组中的数组内部的可用性状态。
data=[
{
"productId": 1001080012,
"storeNumber": 289,
"isSosVendorDirect": true,
"price": {
"selling": "249.00",
"retail": "249.00",
"typeCode": 1,
"typeIndicator": "Regular Price"
},
"availability":
[
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 822,
"deliveryMethodId": 1,
"deliveryMethodName": "Parcel Shipping",
"storeNumber": 907
},
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 1,
"leadTime": 1570607222335,
"deliveryMethodId": 2,
"deliveryMethodName": "Store Pickup",
"storeNumber": 289
},
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 1,
"leadTime": 1570607222335,
"deliveryMethodId": 3,
"deliveryMethodName": "Truck Delivery",
"storeNumber": 289
}
],
"@type": "item"
}
]
我已经厌倦了。
price=data[selling]
store=data[storeNumber]
答案 0 :(得分:1)
您混合使用了嵌套列表和字典。查看它,您可以弄清楚其结构。
假设您的数据为:
txt = '''
[
{
"productId": 1001080012,
"storeNumber": 289,
"isSosVendorDirect": true,
"price": {
"selling": "249.00",
"retail": "249.00",
"typeCode": 1,
"typeIndicator": "Regular Price"
},
"availability":
[
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 822,
"deliveryMethodId": 1,
"deliveryMethodName": "Parcel Shipping",
"storeNumber": 907
},
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 1,
"leadTime": 1570607222335,
"deliveryMethodId": 2,
"deliveryMethodName": "Store Pickup",
"storeNumber": 289
},
{
"availabilityStatus": "Available",
"productStockType": "STK",
"availabileQuantity": 1,
"leadTime": 1570607222335,
"deliveryMethodId": 3,
"deliveryMethodName": "Truck Delivery",
"storeNumber": 289
}
],
"@type": "item"
}
]
'''
然后:
import json
data = json.loads(txt)
price = data[0]['price']['selling']
print(price)
store = data[0]['availability'][0]['storeNumber']
print(store)
输出:
249.00
907
答案 1 :(得分:1)
由于数据为长度为1的数组,因此必须首先调用第0个索引。
price=data[0]['price']['selling']
store=data[0]['storeNumber']
print(price, store)
结果如下:
249.00 289
您还可以在可用性密钥中使用storeNumber
,它们具有不同的值。在这种情况下,您必须指定要选择的值,但我不知道想要什么。