简体   繁体   English

从嵌套的 JSON 中提取数据 - Python

[英]Extract data from nested JSON - Python

I have the following output from a HTTP Request and I'm trying to filter out the data to extract two bits of info.我有以下来自 HTTP 请求的输出,我试图过滤掉数据以提取两位信息。

{
"error": false, 
"statusCode": 200, 
"message": "OK", 
"data": {
    "lastChecked": "2020-03-16T22:02:35.106Z", 
    "sales_stats": [
        {"department": "online", 
        "country": "United Kingdom", 
        "orders": 11840, 
        "delivered": 2101}, 

        {"department": "instore", 
        "country": "United Kingdom", 
        "orders": 120, 
        "delivered": 95}, 

        {"department": "other", 
        "country": "United Kingdom", 
        "orders": 35, 
        "delivered": 1}
        ]}}

I only care about department online and I just need to display orders and delivered from that.我只关心在线部门,我只需要显示订单并从中交付。

I have tried to extract this however to no avail.我试图提取这个但是无济于事。

All I want is the following bit of code.我想要的只是以下代码。

data_orders = <11840 extracted from the response>
data_delivered = <2101 extracted from the response>

print("Orders = ", data_orders)
print('Delivered = ", data_delivered)

For the final outcome of对于最终结果

Orders = 11840
Delivered = 2101

Try something like this:尝试这样的事情:

json = {
  "error": False,
  "statusCode": 200,
  "message": "OK",
  "data": {
    "lastChecked": "2020-03-16T22:02:35.106Z",
    "sales_stats": [
      {
        "department": "online",
        "country": "United Kingdom",
        "orders": 11840,
        "delivered": 2101
      },
      {
        "department": "instore",
        "country": "United Kingdom",
        "orders": 120,
        "delivered": 95
      },
      {
        "department": "other",
        "country": "United Kingdom",
        "orders": 35,
        "delivered": 1
      }
    ]
  }
}

json_data = json["data"]

# The online department is the first element in the sales_stats list
online_data_orders = json_data["sales_stats"][0]["orders"]
online_data_delivered = json_data["sales_stats"][0]["delivered"]

print(f"Orders = {online_data_orders}")
print(f"Delivered = {online_data_delivered}")

Output:输出:

Orders = 11840
Delivered = 2101
resp = requests.get(url=url, params=params)
data = resp.json()
data_orders = data['data']['sales_stats'][0]['orders']

you can do similar for data_delivered你可以对data_delivered做类似的data_delivered

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

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