欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python處理json字符串中的非法雙引號(hào)問題

 更新時(shí)間:2023年02月08日 14:20:06   作者:Nick_Spider  
這篇文章主要介紹了使用Python處理json字符串中的非法雙引號(hào)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python處理json字符串中的非法雙引號(hào)

工作中數(shù)據(jù)清洗時(shí)遇到以下情況:

a = '{"地區(qū)": "湖南", "描述": "精通軟件開發(fā)、"數(shù)據(jù)挖掘"和分布式"}'

由于讀取出的json字符串中包含有非法雙引號(hào),在使用json.loads()處理的時(shí)候報(bào)錯(cuò)

json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 29 (char 28)

寫了大半個(gè)小時(shí)的正則都無(wú)法解決

后來(lái)使用如下方法解決了,一并把json字符串中的換行符、分隔符和雙引號(hào)都轉(zhuǎn)義了

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@@")\
? ? ? ? .replace('"}', "**testPassword**")
? ? print(data)

? ? data = data.replace('"', r'\"')\
? ? ? ? .replace('&&testPassword&&', '": "').replace('$$testPassword$$', '", "').replace('@@testPassword@@', '{"').replace('**testPassword**', '"}')
? ? print(data)
? ? return data

測(cè)試如下:

a = deal_json_invaild(a)
json_data = json.loads(a)

> {"地區(qū)": "湖南", "描述": "精通軟件開發(fā)、\"數(shù)據(jù)挖掘\"和分布式"}

此時(shí)轉(zhuǎn)使用json.loads()便不會(huì)報(bào)錯(cuò)了

Python json單、雙引號(hào)問題

在 python3 里,一個(gè)json是一個(gè)字典,形如 {"a":15}

json轉(zhuǎn)換成字符串的話

那么,如果你要將它轉(zhuǎn)換成字符串,也許你用的是str({"a":15}),這樣轉(zhuǎn)出來(lái)的,可能是是s= "{'a':'15'}",也就是說(shuō),里面的kv是單引號(hào)的。這個(gè)字符串,傳到其他地方,再用json.loads(s)的時(shí)候會(huì)出錯(cuò),json不支持單引號(hào)。

所以,假如你想把一個(gè)json結(jié)構(gòu),轉(zhuǎn)成字符串,傳遞給遠(yuǎn)處,然后再重新解析成json結(jié)構(gòu),應(yīng)該這樣:

s = json.dumps({"a":15})

然后,把數(shù)據(jù)傳到遠(yuǎn)端,然后再解析回來(lái):

d = json.loads(s)

這樣就不會(huì)出錯(cuò)了。

也支持列表,能一次性傳多個(gè)結(jié)構(gòu)

s = json.dumps([{"a":15}, {"b":20}])

然后,把數(shù)據(jù)傳到遠(yuǎn)端,然后再解析回來(lái):

d = json.loads(s)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 文本滾動(dòng)播放器的實(shí)現(xiàn)代碼

    Python 文本滾動(dòng)播放器的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python 文本滾動(dòng)播放器的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用

    BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用

    這篇文章主要介紹了BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    本文主要介紹了使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring Cloud Feign高級(jí)應(yīng)用實(shí)例詳解

    Spring Cloud Feign高級(jí)應(yīng)用實(shí)例詳解

    這篇文章主要介紹了Spring Cloud Feign高級(jí)應(yīng)用實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python辦公自動(dòng)化從Excel中計(jì)算整理數(shù)據(jù)并寫入Word

    Python辦公自動(dòng)化從Excel中計(jì)算整理數(shù)據(jù)并寫入Word

    這篇文章主要為大家介紹了Python辦公自動(dòng)化從Excel中計(jì)算整理數(shù)據(jù)并寫入Word示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • pytorch:model.train和model.eval用法及區(qū)別詳解

    pytorch:model.train和model.eval用法及區(qū)別詳解

    今天小編就為大家分享一篇pytorch:model.train和model.eval用法及區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python的virtualenv虛擬環(huán)境常見問題和命令

    python的virtualenv虛擬環(huán)境常見問題和命令

    在Python中,venv是一個(gè)用于創(chuàng)建和管理虛擬環(huán)境的模塊,虛擬環(huán)境可以幫助你在項(xiàng)目之間隔離不同的Python包和依賴關(guān)系,這篇文章主要介紹了python的virtualenv虛擬環(huán)境常見問題和命令,需要的朋友可以參考下
    2024-07-07
  • PIP和conda 更換國(guó)內(nèi)安裝源的方法步驟

    PIP和conda 更換國(guó)內(nèi)安裝源的方法步驟

    這篇文章主要介紹了PIP和conda 更換國(guó)內(nèi)安裝源的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能

    基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能

    這篇文章主要介紹了基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟

    Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟

    今天給大家分享Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟,激活A(yù)naconda環(huán)境變量分為簡(jiǎn)潔版和詳細(xì)版,簡(jiǎn)潔版只需要通過(guò)輸入命令進(jìn)行配置即可,詳細(xì)版本文通過(guò)圖文步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06

最新評(píng)論