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)

上一篇下一篇

猜你喜欢

热点阅读