ValueError:期望在Python中用双引号括起的属性名称

时间:2016-04-27 21:18:19

标签: python

OLD ERROR: 我有这个错误:

  

ValueError:期望用双引号括起来的属性名称:

这是我的代码。我想在字典上转换String ResultPart:

 resultPart = '{"sentences": [{"parsetree": [], [("words": "Q", {"Lemma": "q", "NamedEntityTag": "O", "CharacterOffsetEnd": "1", "PartOfSpeech": "NN", "CharacterOffsetBegin": "0"})], "dependencies": [], "text": "Q", "parsetree": [], "indexeddependencies": []}]}'
 resultPart2 = json.dumps(resultPart)
 #result should be a dict
 result = json.loads(resultPart)

编辑:我更正了那部分,现在我发现了这个错误:

  

TypeError:字符串索引必须是整数

这是新代码:

 resultPart = "{'sentences': [{'words': [('Q', {'Lemma': 'q', 'NamedEntityTag': 'O', 'CharacterOffsetEnd': '1', 'PartOfSpeech': 'NN', 'CharacterOffsetBegin': '0'})], 'dependencies': [], 'text': 'Q', 'parsetree': [], 'indexeddependencies': []}]}"
 resultPart2 = json.dumps(resultPart)
 result = json.loads(resultPart2)

2 个答案:

答案 0 :(得分:1)

问题似乎在以下一行:

{
...
    "parsetree": [], [
    "words": "Q", {
        "Lemma": "q",
        "NamedEntityTag": "O",
        "CharacterOffsetEnd": "1",
        "PartOfSpeech": "NN",
        "CharacterOffsetBegin": "0"
    }],
...

}

正在寻找key之后的另一个[]作为"parsetree"的值。所以它需要像以下一样才能成为有效的JSON。

{
...
    "parsetree": [], 
    "more_words": [
    "words": "Q", {
        "Lemma": "q",
        "NamedEntityTag": "O",
        "CharacterOffsetEnd": "1",
        "PartOfSpeech": "NN",
        "CharacterOffsetBegin": "0"
    }],
...

}

答案 1 :(得分:0)

这与错误无关,但它会有所帮助。

您正在将字符串转储为另一个字符串作为JSON ...这将导致转义字符。

>>> s = '{"dependencies": [], "sentences": [{"parsetree": []}], "text": "Q"}'
>>> import json
>>> json.dumps(s)
'"{\\"dependencies\\": [], \\"sentences\\": [{\\"parsetree\\": []}], \\"text\\": \\"Q\\"}"'

我非常怀疑这是你想要的。话虽如此,制作一个Python字典,因为1)它不容易出错2)你可以得到正确的JSON

>>> s = {1: 2, 'sentences': [{'parsetree': []}], 'dependencies': [], 'text': "Q"}
>>> json.dumps(s)
'{"1": 2, "dependencies": [], "sentences": [{"parsetree": []}], "text": "Q"}'