Я получаю данные JSON после удара API. Когда я пытаюсь загрузить это JSON в Python, используя json.loads (Ответ.text), я получаю ошибку разделителя.

При проверке несколько полей в json не имеют разделяющего символа ",".

{
"id":"142379",
"label":"1182_Mailer_PROD",
"location":"Bangalore, India",
"targetType":"HTTPS performance",
"frequency":"15",
"fails":"2764",
"totalUptime":"85.32"
"tests":[
{"date":"09-24-2019 09:31","status":"Could not resolve: mailer.accenture.com (DNS server returned answer with no data)","responseTime":"0.000","dnsTime":"0.000","connectTime":"0.000","redirectTime":"0.000","firstbyteTime":"0.000","lastbyteTime":"0.000","pingLoss":"0.00","pingMin":"0.000","pingAvg":"0.000","pingMax":"0.000","size":"0","md5hash":"(null)"}
]
}
,
{
"id":"158651",
"label":"11883-GR dd-WSP",
"location":"Chicago, IL",
"targetType":"Performance transaction",
"frequency":"15",
"fails":"5919",
"totalUptime":"35.14"
,"tests":[
{"date":"09-24-2019 09:26","status":"Keywords not found - Working","responseTime":"0.669","stepresults":[
{"stepid":"1","date":"09-24-2019 09:26","status":"OK","responseTime":"0.453","dnsTime":"0.000","connectTime":"0.025","redirectTime":"0.264","firstbyteTime":"0.141","lastbyteTime":"0.024","size":"22351","md5hash":"ca002cf662980511a9faa88286f2ee96"},
{"stepid":"2","date":"09-24-2019 09:26","status":"Keywords not found - Working","responseTime":"0.216","dnsTime":"0.000","connectTime":"0.023","redirectTime":"0.000","firstbyteTime":"0.171","lastbyteTime":"0.022","size":"22457","md5hash":"38327404e4f2392979aa7dfa27118f4e"}
]}]
}

Это небольшой кусок данных из ответа, как вы могли видеть «Обходящее дело»: «85,32» не имеет запятой, отделяющего его.

Не могли бы вы сообщить мне, как мы можем загрузить данные в объект python, даже если json деформирован

1
Sumanth Shetty 25 Сен 2019 в 08:47

1 ответ

Лучший ответ

Деформирован JSON не JSON, поэтому, очевидно, вы не можете загрузить его со стандартной процедурой. Есть только две возможности для его загрузки:

  • Создайте свой собственный парсер
  • Измените вход, чтобы соответствовать стандарту JSON

Обе возможности требуют, чтобы вы определили, какой формат вы хотите импортировать. Если в вашем формате нет запятых, вы должны определить свои разделители.

Из указанного вами примера трудно сделать какую-либо окончательную оценку о том, как определен формат ввода. Таким образом, вам, вероятно, придется написать элементарный парсер и приблизить его, попробуйте ошибку на вход, вы пытаетесь разобрать.

0
julodnik 25 Сен 2019 в 06:19