Учитывая, что вы уже прочитали строку JSON откуда-то, будь то файл, stdin или любой другой источник.
Вы можете фактически десериализовать ее в объект Python, выполнив:
import json
# ...
json_data = json.loads(json_str)
Где json_str
- это строка JSON, которую вы хотите проанализировать.
В вашем случае json_str
будет десериализован в Python list
, поэтому вы можете выполнять с ним любые операции, как и вы.обычно это делается с list
.
Конечно, это включает в себя перебор элементов:
for item in json_data:
if item.get('name') in ('CM', 'OS'):
print(item['description'])
Как видите, элементы в json_data
были десериализованы вdict
, так что вы можете получить доступ к фактическим полям, используя операции dict
.
Примечание
Вы также можете десериализовать JSON непосредственно из источника, если у вас есть доступ кфайловый обработчик / дескриптор или поток:
# Loading from a file
import json
with open('my_json.json', 'r') as fd:
# Note that we're using json.load, not json.loads
json_data = json.load(fd)
# Loading from stdin
import json, sys
json_data = json.load(sys.stdin)