Я запрашиваю API компании для антикоррупционного расследования и получаю результаты во вложенном JSON, который можно увидеть здесь .Я хотел бы преобразовать этот словарь в простой формат {key:value, key:value}
, где, если у меня есть вложенные объекты или списки, ключи объединяются в уплощенную строку ключей.
Проблема также в том, что некоторые элементы, возвращаемые API, могутне обязательно иметь все пары ключ: значение, поскольку некоторые из них являются необязательными. Если пара ключ: значение отсутствует, то я бы хотел вставить NA
.
Вот JSON в полном объеме - хотя некоторые результаты запроса могут содержать не все эти записи.
{
"items" : [
{
"address" : {
"address_line_1" : "string",
"address_line_2" : "string",
"care_of" : "string",
"country" : "string",
"locality" : "string",
"po_box" : "string",
"postal_code" : "string",
"premises" : "string",
"region" : "string"
},
"address_snippet" : "string",
"appointment_count" : "integer",
"date_of_birth" : {
"month" : "integer",
"year" : "integer"
},
"description" : "string",
"description_identifiers" : [
"integer"
],
"kind" : "string",
"links" : {
"self" : "string"
},
"matches" : [
{
"address_snippet" : [
"integer"
],
"snippet" : [
"integer"
],
"title" : [
"integer"
]
}
],
"snippet" : "string",
"title" : "string"
}
],
"items_per_page" : "integer",
"kind" : "string",
"start_index" : "integer",
"total_results" : "integer"
}
Повторное использование старого кода JQ Мне удалось создать два списка, один из которых содержит все ключи, а другой - все значения (см. Jqplay здесь ).
Вот пример для небольшого словаря, чтобы понять идею:
{
"items_address_address_line_1" : "string",
"items_address_address_line_2" : "string"
"items_address_care_of" : "string",
"items_address_country" : "string",
"items_address_locality" : "string",
"items_address_po_box" : "string",
"items_address_postal_code" : "string",
"items_address_premises" : "string",
"items_address_region" : "string"
}