小编典典

Python/Json:期望用双引号括起来的属性名称

all

我一直在尝试找出一种在 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)

我用谷歌搜索了它,但除了这个解决方案之外json.loads(json.dumps(data))似乎没有任何效果,这对我个人来说似乎效率不高,因为它接受任何类型的数据,即使是那些不是
json 格式的数据。

任何建议将不胜感激。


阅读 122

收藏
2022-06-06

共1个答案

小编典典

这个:

{
    '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 规范 - RFC7159规定字符串以引号开头和结尾。那就是 "
单引号 ' 在 JSON 中没有语义含义,只允许在字符串中使用。

2022-06-06