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

2018-01-26 11:47:01 +08:00
 hao1032
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()
3174 次点击
所在节点    问与答
3 条回复
jackyzy823
2018-01-26 11:57:36 +08:00
ast.literal_eval 可行否
以及 s 的 tango 后面少了个}
hao1032
2018-01-26 13:12:58 +08:00
@jackyzy823 是的,写漏了
hao1032
2018-01-26 13:23:58 +08:00
@jackyzy823 另外 literal_eval 可行,多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/426102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX