簡體   English   中英

如何用轉義引號操作字符串

[英]How to manipulate string with escaped quotes

由於存在轉義字符,以下代碼在嘗試將字符串解析為字典時遇到問題,我將舉一個示例:

string = """ {"key" : "value 'others' = \"one \" "} """
json.loads(string)

json無法加載,因為它獲取了以下帶有過多雙引號的字符串:

 {"key" : "value 'others' = "one " "}

實際上,我不需要加載json,我可以簡單地執行eval:

ast.literal_eval(string)

到目前為止,很好的問題是我無法使用replace刪除轉義的雙引號字符串(例如:s.replace('\\“','')),因此,存在一些低級字符串操作來實現我想要的功能我想獲得有效的json語法:

{"key" : "value 'others' = one "} 

或者能夠使python不刪除反斜杠:

{"key" : "value 'others' = \"one\" "} 

正如弗朗索瓦(Francois)所說,這可以通過使用原始字符串來實現:

rawstring = r"my string \""

我的問題與已放置在非原始字符串變量中的字符串有關,因此我需要某種方法將非原始字符串重鑄為原始字符串,以便使用json或ast.literal_eval解析為字典數據結構

引號轉義在這里不起作用:

>>> """ {"key" : "value 'others' = \"one \" "} """
' {"key" : "value \'others\' = "one " "} '

如您所見,反斜杠已被忽略。 您可以使用原始前綴將它們考慮在內:

import json
string = r""" {"key" : "value 'others' = \"one \" "} """
print(json.loads(string))

結果:

{'key': 'value \'others\' = "one " '}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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