Python/Json:要求属性名用双引号括起来

2024-05-13 02:56:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想办法在Python中加载JSON对象。 我发送这个json数据:

{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}

在后端,它将作为字符串接收,然后我使用json.loads(data)来解析它。

但每次我都有同样的例外:

ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我在google上搜索了它,但除了这个解决方案json.loads(json.dumps(data))似乎什么也做不到,对我个人来说,这个解决方案似乎没有那么有效,因为它接受任何类型的数据,甚至是不采用json格式的数据。

任何建议将不胜感激。


Tags: 数据对象orgjsonhttpdataexample解决方案
3条回答

由于JSON只允许用双引号括起字符串,因此可以如下操作字符串:

str = str.replace("\'", "\"")

这将在JSON字符串str中用双引号替换所有出现的单引号。

您也可以使用不太严格的js-beautify

$ pip install jsbeautifier
$ js-beautify file.js

这:

{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}

不是JSON。
这:

{"http://example.org/about": {"http://purl.org/dc/terms/title": [{"type": "literal", "value": "Anna's Homepage"}]}}

是JSON。

很简单,该字符串不是有效的JSON。正如错误所说,JSON文档需要使用双引号。

您需要修复数据源。

相关问题 更多 >