Зацикливание на массивах JSON и печать данных

#python #json #python-3.x

#python #json #python-3.x

Вопрос:

У меня есть серия файлов JSON в папке, которые выглядят следующим образом:

 {
    "details": {
        "firstName": "Test",
        "surname": "Testmaker",
        "email": "test@testhealth.com",
        "phone": null,
        "organisation": "Test Health",
        "department": "B Ward",
        "persona": "Health professionals",
        "address": {
            "street": "137 Test Street",
            "suburb": "Test Park",
            "postcode": null
        },
        "questions": {
            "iAmA": null,
            "iWorkAtA": "Private Hospital",
            "iAmSeekingFor": null,
            "iAmAMemberOf": null,
            "furtherInfoOptIn": null,
            "newsletterOptIn": "false",
            "privacyCollection": true
        }
    },
    "orders": [
        {
            "name": "A Guide to Relaxation",
            "quantity": 20
        },
        {
            "name": "Guide to Coping with Testing",
            "quantity": 20
        }
    ]
}
  

Я пытаюсь выполнить итерацию по всем файлам JSON и напечатать название каждого заказа, а затем товары, которые заказал пользователь.

Я успешно распечатал полные названия всех заказов, используя следующее:

 import os, json

ordersDirectory = "C:devcic\testing"

# json objects stored in multiple files, itterate over all of them
for filename in os.listdir(ordersDirectory):
    with open(ordersDirectory   '\'   filename) as data_file:
        dataset = json.load(data_file)
        print(dataset["details"]["firstName"]   " "   dataset["details"]["surname"])
  

Теперь я хочу напечатать все заказы для этих имен, однако я изо всех сил пытаюсь понять, как я зацикливаюсь на объекте orders в созданном мной наборе данных. Предполагая, что следующее является псевдокодом, чему мне нужно научиться, чтобы заставить его работать?

 import os, json

ordersDirectory = "C:devcic\testing"

# json objects stored in multiple files, itterate over all of them
for filename in os.listdir(ordersDirectory):
    with open(ordersDirectory   '\'   filename) as data_file:
        dataset = json.load(data_file)
        print(dataset["details"]["firstName"]   " "   dataset["details"]["surname"])
        # Broken pseudocode below
        for items in dataset["orders"]:
            print(items["orders"]["name"])
  

Ответ №1:

Вы были близки

 for order in dataset["orders"]:
     print(order["name"] ", quantity: "   str(order["quantity"]))
  

Комментарии:

1. Ага, я тоже! Спасибо.