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)
答案 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"}'