簡體   English   中英

JSON.loads 正在將雙引號轉換為單引號

[英]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 ,包含其他dictlist等等。

您在第二個引用中看到的是該數據結構的文本表示,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.

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