簡體   English   中英

有什么方法可以將變形的 json 加載到 python object 中?

[英]is there any way where we can load deformed json into python object?

在點擊 API 后,我得到了 json 數據。 當我嘗試使用 json.loads(response.text) 將 json 加載到 python 中時,出現分隔符錯誤。

當檢查 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"}
]}]
}

這是響應中的一小部分數據,您可以看到 "totalUptime":"85.32" 沒有逗號分隔。

你能告訴我如何將數據加載到 python object 即使 json 變形

變形的 JSON 不是 JSON,所以顯然你不能用標准程序加載它。 加載它只有兩種可能性:

  • 創建自己的解析器
  • 修改輸入以符合 JSON 標准

這兩種可能性都需要您定義要導入的格式。 如果您的格式沒有逗號是可以的,那么您必須定義您的分隔符是什么。

從您發布的示例中,很難對輸入格式的定義做出任何明確的評估。 因此,您可能必須編寫一個基本的解析器,並通過嘗試和錯誤來逼近您嘗試解析的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM