python json.loads 取消转义字符 反斜杠 "\"
2021-09-13 本文已影响0人
姚远_HIT
前言
今天利用 python 处理数据时,遇见了两个问题,一个是需要读取的文件中有正常字符串和字典;一个是字典中有转义字符反斜杠 ""。
问题1 的解决方案
通过搜索,寻找到 json 可以处理字典类型,解决方法如下:
import json
json.loads("需要读取的字符串中的字典")
问题2 的解决方案
通过问题1的解决方案,虽然可以将字符串转换成字典类型,但是我的字典类型当中有转义字符反斜杠 "\",因此在读取到字典之前,需要先处理转义字符,解决方法如下:
1. 使用 eval 函数,其功能如下:
eval
功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个Python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意map对象
str = """{\\"name\\":4}"""
str2 = eval("'{}'".format(str))
print(str2)
输出结果为
{"name":4}
2. 使用 正则表达式,将 "\" 去除,具体实现方式如下:
str = """{\\"name\\":4}"""
str1 = re.sub(r'\\','',str)
print(str1)
print(json.loads(str1))
输出结果分别为
{"name":4}
{'name': 4}
参考博文
[1] Python json.loads 取消反斜杠 Expecting property name enclosed in double quotes: line 1 column 2 (char 1)