Является следующим действующим JSON:
"AGENT ": {
"pending": [],
"active": null,
"completed": [{}]
},
"MONITORING": {
"pending": [],
"active": null,
"completed": [{}]
}
json validator sites (https://jsonlint.com/) говорит, что это не так. Как я могу сделать это действительным json? преобразование этого в dict в python обрезает блоки json (часть "AGENT"). Как я могу преобразовать этот блок в dict в python без потери блоков json? Это JSON возвращается из запроса GET. Использование следующего не работает
response = requests.get(<url>)
data = response.content
json_data = json.dumps(data)
item_dict = json.loads(data)
item_dict = data
Вам просто нужно сделать его одним объектом JSON, добавив фигурные скобки:
{
"AGENT ": {
"pending": [],
"active": null,
"completed": [{}]
},
"MONITORING": {
"pending": [],
"active": null,
"completed": [{}]
}
}
Теперь это действительно:
In [27]: json.loads('''{
....: "AGENT ": {
....: "pending": [],
....: "active": null,
....: "completed": [{}]
....: },
....: "MONITORING": {
....: "pending": [],
....: "active": null,
....: "completed": [{}]
....: }
....: }''')
Out[27]:
{u'AGENT ': {u'active': None, u'completed': [{}], u'pending': []},
u'MONITORING': {u'active': None, u'completed': [{}], u'pending': []}}
Говоря о разборе http-ответа, вы можете сделать все просто:
item_dict = requests.get(<url>).json()