[英]How to convert JSON string with “” (instead of ") to JSON in Python
我有一個字符串:
a = '"{""key1"": ""val1"", ""key2"":""val2""}"'
將其轉換為 Python 中的字典的最適當方法是什么?
普通json.loads(a)
無法破譯這種格式。
編輯:這個奇怪的 JSON 字符串是在我用一個“類似json”的列讀取 CSV 時創建的。
假設字符串來自 CSV 文件,使用csv
進行解碼,然后將結果傳遞給json
進行解碼。
>>> import io, csv, json
>>> a = '"{""key1"": ""val1"", ""key2"":""val2""}"'
>>> csv_file_like = io.StringIO(a)
>>> reader = csv.reader(csv_file_like)
>>> result = list(reader)
>>> json.loads(result[0][0])
{'key1': 'val1', 'key2': 'val2'}
如果a
已經通過從 CSV 文件中讀取來設置,這會簡單一些; 您可以跳過使用io
從a
創建類似文件的 object 並直接在原始 ZCC8AFD638C551C4A4A 文件上使用csv.reader
我不知道 json 的這種格式。 所以可以使用下一個function:
import json
def load_weird_json(json_string):
a = json_string.replace('""','"')
a = a[1:len(a)-1]
return json.loads(a)
嘗試
import json
a = '"{""key1"": ""val1"", ""key2"":"val2""}"'
a = a.replace('""','"').replace('}"',"}").replace('"{','{')
data = json.loads(a)
print(data)
output
{'key1': 'val1', 'key2': 'val2'}
@chepner 的回答實際上讓我朝着正確的方向前進。 The string was loaded from CSV and I could effectively prevent this weird JSON forming by using answer from here: spark 2.0 read csv with json , ie add the escape char '\"'
option.
感謝您的回答 - 他們都工作:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.