Добрый день. Я не могу найти окончательного ответа на этот вопрос. Я пытаюсь расшифровать большой файл JSON, но я не знаю точных названий данных и поэтому хочу использовать подстановочный знак.
Я пытался использовать '[*]' '[]' и все остальное, о чем я могу думать - не повезло!
В моем нынешнем виде код выглядит так:
import json
from pprint import pprint
with open('data.json') as data_file:
data = json.load(data_file)
pprint(data['Descriptions']['WILDCARD']['name'])
Я использую Python версии 2.7.1, но также 3.3. Я могу делать это совершенно неправильно ...
Любая помощь приветствуется! :-)
3 ответа
Там нет такой вещи. Вам нужно будет просмотреть все элементы в data['Descriptions'].values()
и проверить
- Убедитесь, что это диктат.
- Убедитесь, что у него есть поле
'name'
.
После того, как вы сделали эти проверки, вы можете упаковать его в список. вот список-понимание, которое должно выполнить работу ... (я думаю: -) ...
names = [d['name'] for d in data['Descriptions'].values()
if isinstance(d, dict) and 'name' in d]
something[*].x
реализован как [item.x for item in something]
РЕДАКТИРОВАТЬ:
Вышеприведенное верно, если something
является list
. Для словарей это:
[item.x for item in something.values()]
Я опоздал на вечеринку, но я бы предложил никогда не использовать pprint при использовании объектов json или вызовов API.
Вместо этого сделайте что-то вроде ## print (json.dumps (data [key], indent = 4)) ###
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.