Извлечение данных из вложенных JSON - Python - PullRequest
1 голос
/ 17 марта 2020

У меня есть следующий вывод из 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}
        ]}}

Меня интересует только отдел в Интернете, и мне просто нужно отображать заказы и доставленные из них.

Я пытался извлечь это, однако безрезультатно.

Все, что я хочу, это следующий фрагмент кода.

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

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

Для окончательного результата

Orders = 11840
Delivered = 2101

Ответы [ 2 ]

0 голосов
/ 17 марта 2020
resp = requests.get(url=url, params=params)
data = resp.json()
data_orders = data['data']['sales_stats'][0]['orders']

вы можете сделать подобное для data_delivered

0 голосов
/ 17 марта 2020

Попробуйте что-то вроде этого:

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}")

Вывод:

Orders = 11840
Delivered = 2101
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...