[英]JSON.loads is converting double quotes to single quotes
我是 Python 的初學者。 在這里,我嘗試使用 JSON.load 來解析 JSON 字符串。 使用 json.dumps 時,我收到以下 output:
{
"events": [
{
"sourceip": "10.10.10.1",
"destinationip": "127.0.0.1"
},
{
"sourceip": "10.10.10.2",
"destinationip": "127.0.0.1"
}
]
}
我在此應用 json.loads function 以便稍后將它們用於另一個 function。 但是,當在結果上使用 json.loads 時,它會將所有雙引號替換為單引號,如下所示:
{'events': [{'sourceip': '10.10.10.1', 'destinationip': '127.0.0.1'}, {'sourceip': '10.10.10.2', 'destinationip': '127.0.0.1'}]}
如何在不將雙引號替換為單引號的情況下使用 json.loads。
謝謝。
使用.load
或.loads
加載 JSON 后,將不再有任何引號。 相反,它被轉換為由 Python 對象組成的數據結構:根dict
,包含其他dict
或list
等等。
您在第二個引用中看到的是該數據結構的文本表示,Python 可以打印出來供您檢查其中的內容。 單引號只是 Python 在生成這樣的表示時打印字符串的約定,它們實際上並不是數據的一部分。
在你提到的這個回溯之后
json.decoder.JSONDecodeError:
Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
您正在傳遞一個 python 字典,它需要一個有效的 JSON。
解決方案就像您加載JSON object 將其轉儲為有效 JSON
import json
json_obj = {
"events": [
{
"sourceip": "10.10.10.1",
"destinationip": "127.0.0.1"
},
{
"sourceip": "10.10.10.2",
"destinationip": "127.0.0.1"
}
]
}
loaded_obj = json.loads(json_obj)
#dump it to valid json using
valid_json = json_dumps(loaded_obj) #pass this to pandas lib
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.