簡體   English   中英

多行 Json 不適用於 python json.loads

[英]Multiline Json not working with python json.loads

這是 python 請求代碼

response = requests.post(jobsurl, data=searchPayload, auth=(user, password), verify=validateCert)
    print(response.text)

它返回以下字符串

{"preview":false,"offset":0,"result":{"title":"testalert1","eai:acl.owner":"testorphanuser","request.ui_dispatch_app":"search","splunk_server":"host1","qualifiedSearch":"search index=_internal | head 1"}}
{"preview":false,"offset":1,"lastrow":true,"result":{"title":"testalert2","eai:acl.owner":"testorphanuser","request.ui_dispatch_app":"search","splunk_server":"host1","qualifiedSearch":"search index=_internal | head 2"}}

我正在嘗試做 json.load 並收到錯誤

job_data = json.loads(response.text)
    print(job_data)
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 212)

我正在嘗試解析標題,eai:acl.owner 和 request.ui_dispatch_app,我猜錯誤來自第二個 json 行條目。 有沒有辦法可以將它們和 append 加載到列表中?

任何幫助將不勝感激

由於 json.loads() 對我來說不適用於多行 json 條目,並且在第二個條目時出錯。 我將 output 寫入文件並循環每一行以執行 json.loads() 正如@klaus 提到的那樣,它有效。 不確定是否有另一種簡單的方法,但這對我有用。

data = response.text
with open('data.txt', 'w') as wf:
    wf.write(data)
with open('data.txt') as rf:
    for entry in rf:
        entryDist = json.loads(entry)
        entryList.append(entryDist)

暫無
暫無

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

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