V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hao1032
V2EX  ›  问与答

有这样的一个字符串(单双引号混用), Python 中怎么才能正确的转换为 json 呢?

  •  
  •   hao1032 · 2018-01-26 11:47:01 +08:00 · 3145 次点击
    这是一个创建于 2253 天前的主题,其中的信息可能已经有所发展或是发生改变。
    s = """{'message': " AwContents.java:599:30: ',' is not followed by whitespace.\n android", 'a': 'tango'"""

    1.直接 json.loads(s),报错 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

    2.替换引号 s = s.replace("'", '"'),报错 json.decoder.JSONDecodeError: Invalid control character at: line 1 column 74 (char 73)


    各位这个要怎么处理啊?因为这个要在 server 端用,不能使用 eval()
    3 条回复    2018-01-26 13:23:58 +08:00
    jackyzy823
        1
    jackyzy823  
       2018-01-26 11:57:36 +08:00
    ast.literal_eval 可行否
    以及 s 的 tango 后面少了个}
    hao1032
        2
    hao1032  
    OP
       2018-01-26 13:12:58 +08:00
    @jackyzy823 是的,写漏了
    hao1032
        3
    hao1032  
    OP
       2018-01-26 13:23:58 +08:00
    @jackyzy823 另外 literal_eval 可行,多谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1124 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:56 · PVG 06:56 · LAX 15:56 · JFK 18:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.