美文网首页
python json.loads 取消转义字符 反斜杠 "\"

python json.loads 取消转义字符 反斜杠 "\"

作者: 姚远_HIT | 来源:发表于2021-09-13 13:11 被阅读0次

    前言

    今天利用 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)

    相关文章

      网友评论

          本文标题:python json.loads 取消转义字符 反斜杠 "\"

          本文链接:https://www.haomeiwen.com/subject/sqcfgltx.html