python: Извлеките все конкретные подразделы из JSON

#python #json

Вопрос:

Если у меня есть JSON, подобный следующему:

 "children": [  {  "firstName": "Alice",  "age": 6  },  {  "firstName": "Bob",  "age": 8  }  {  "firstName": "Candice",  "age": 4  }  ]  

И мне нужен массив всех значений имени, как бы я мог получить их с помощью python?

Я попробовал следующее, и это работает, но мой набор данных больше (40 000 строк), и повторять его было бы нецелесообразно:

 children = JSON  firstNames = []  firstNames.append(json.loads(children.text)['children'][0]['firstName']) firstNames.append(json.loads(children.text)['children'][1]['firstName']) firstNames.append(json.loads(children.text)['children'][2]['firstName'])  

Я рассматривал возможность использования цикла for для замены чисел, но понятия не имею, как это сделать.

Ответ №1:

@ашер, вы можете значительно повысить производительность, если выполните удаление сериализации только один раз. И для сбора имен вы можете использовать понимание списка:

 doc = json.loads(children.text) firstNames = [child["firstname"] for child in doc["children"]]  

Ответ №2:

Должно быть ясно, как расширить то, что у вас есть. Ради бога, не повторяйте загрузку JSON несколько раз.

 data = json.loads(children.text) firstNames = [k['firstname'] for k in data['children']]