首页 > 解决方案 > 使用python,如何检查字符串是否是有效的json对象,即使字符串使用单引号?

问题描述

假设我有一个如下所示的字符串:

"{'apple': 1, 'orange': 2}"

如何确定这是否是有效的 json 对象?json.loads() 不起作用,因为字符串使用单引号而不是双引号。用双引号替换所有单引号似乎有风险,因为单引号被转义,如下所示:

"{'sentence':'let\'s solve the issue'}"

用双引号替换所有单引号使句子:让我们解决问题,这是不正确的。

我尝试了 demjson,https: //pypi.org/project/demjson/,它确实有效,但速度非常慢。有任何想法吗?

标签: pythonjson

解决方案


JSON 规范要求对象具有字符串键和双引号字符串 。

带有单引号字段的类字典对象不是 JSON。

您拥有的是其他格式。

它可能是JSON5兼容的,它允许单引号字符串并有自己的JSON5 python 库

它可能是一个糟糕的 JSON 实现,但这应该在服务器上修复。JSON 输出通常是使用经过良好测试的库实现的,而仅仅是 JSON-ish 的输出是一种不好的代码味道。它应该让一个理性的人想知道还有什么其他草率的代码。


推荐阅读