У меня есть этот массив JSON с несколькими корнями:
[
{
"issuer_ca_id": 16418,
"issuer_name": "C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3",
"name_value": "sub.test.com",
"min_cert_id": 325717795,
"min_entry_timestamp": "2018-02-08T16:47:39.089",
"not_before": "2018-02-08T15:47:39"
},
{
"issuer_ca_id":9324,
"issuer_name":"C=US, O=Amazon, OU=Server CA 1B, CN=Amazon",
"name_value":"marketplace.test.com",
"min_cert_id":921763659,
"min_entry_timestamp":"2018-11-05T19:36:18.593",
"not_before":"2018-10-31T00:00:00",
"not_after":"2019-11-30T12:00:00"
}
]
Я хочу перебрать его и распечатать значения issuer_name на Python. Любое решение, пожалуйста?






Используйте пакет json и загрузите файл json. Предполагая, что это строка в памяти (в отличие от файла .json):
jsonstring = """
[
{
"issuer_ca_id": 16418,
"issuer_name": "C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3",
"name_value": "sub.test.com",
"min_cert_id": 325717795,
"min_entry_timestamp": "2018-02-08T16:47:39.089",
"not_before": "2018-02-08T15:47:39"
},
{
"issuer_ca_id":9324,
"issuer_name":"C=US, O=Amazon, OU=Server CA 1B, CN=Amazon",
"name_value":"marketplace.test.com",
"min_cert_id":921763659,
"min_entry_timestamp":"2018-11-05T19:36:18.593",
"not_before":"2018-10-31T00:00:00",
"not_after":"2019-11-30T12:00:00"
}
]"""
import json
j = json.loads(jsonstring)
[item["issuer_name"] for item in j]
Дает:
["C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3",
'C=US, O=Amazon, OU=Server CA 1B, CN=Amazon']
Мне они не кажутся именами, но это то, что присвоено полю issuer_name, поэтому я думаю, что вы должны обсудить это с владельцем данных.
Если это файл, вы выполняете загрузку по этой базовой схеме:
# something like this
with open("jsonfile.json", "rb") as fp:
j = json.load(fp)
См. Документы здесь: https://docs.python.org/3.7/library/json.html
Это именно то, что я ищу. Большое спасибо за вашу помощь!
Отлично @ W0rm. Если ответ помог решить вашу проблему, отметьте его как ответ!
Я думаю, что название этого вопроса вводит в заблуждение и, вероятно, является дублированием Как найти конкретное значение json по ключу?.