使用Python處理json字串中的非法雙引號

2021-08-23 14:30:12 字數 1010 閱讀 4748

工作中資料清洗時遇到以下情況:

a = ''
由於讀取出的json字串中包含有非法雙引號,在使用json.loads()處理的時候報錯

json.decoder.jsondecodeerror: expecting ',' delimiter: line 1 column 29 (char 28)

寫了大半個小時的正則都無法解決

後來使用如下方法解決了,一併把json字串中的換行符、分隔符和雙引號都轉義了

def

deal_json_invaild

(data):

data = data.replace("\n", "\\n").replace("\r", "\\r").replace("\n\r", "\\n\\r") \

.replace("\r\n", "\\r\\n") \

.replace("\t", "\\t")

data = data.replace('": "', '&&testpassword&&')\

.replace('", "', "$$testpassword$$")\

.replace('', "**testpassword**")

print(data)

data = data.replace('"', r'\"')\

.replace('&&testpassword&&', '": "').replace('$$testpassword$$', '", "').replace('@@testpassword@@', '')

print(data)

return data

測試如下:

a = deal_json_invaild(a)

json_data = json.loads(a)

>

此時轉使用json.loads()便不會報錯了

python 裡面處理json

今天遇到json資料的批量處理 把json轉成csv 其實json檔案就是key value的形式,讀到python就是dict,如果外面套了,讀到python裡面就變成list,讀取的時候需要loads和load的區別 load是對已經讀入到記憶體的檔案的解析為python的變數 loads是從硬...

python 處理json資料

以下是登入賬號後獲取的json資料,headers中注意加入cookie值 需要處理的資料如下 全部 如下 response.text 轉換成json格式 dic data dict str datalist dic data dict str datalist 0 userid 取出字典中的字段值...

python 中 json的處理

python中的json物件,其實就是字典型別。利用json模組,可以將字串型別的json串轉換為 json物件 字典物件 也可以將json物件 字典物件 轉換為字串物件。如 coding utf 8 import json str obj json.loads str 字串轉字典物件 json物件...