我在python中读取数据时遇到问题。其中一行的示例是:
foo_brackets='{"KEY2":[{"KEY2a":[{"KEY2a1":"4","KEY2a2":"5"},{"KEY2a1":"6","KEY2a2":"7"}],"KEY2b":"8"}],"KEY3":"9"}'
当我用json
加载时,KEY2
的值会作为一个列表读入,因为括号会阻止我获得想要的结果,即KEY2b
的值:
我可以试着去掉括号,但实际上有一个值应该是一个列表,KEY2a
。如果我去掉所有括号并尝试转换为JSON,您可以看到:
>>> foo_no_brackets='{"KEY2":{"KEY2a":{"KEY2a1":"4","KEY2a2":"5"},{"KEY2a1":"6","KEY2a2":"7"},"KEY2b":"8"},"KEY3":"9"}'
>>> json.loads(foo_no_brackets)
# Traceback omitted since it's just the python error
ValueError: Expecting property name: line 1 column 45 (char 45)
foo_brackets
似乎是有效的JSON(我测试了here,去掉了引号),得到了以下结果:
{
"KEY2":[
{
"KEY2a":[
{
"KEY2a1":"4",
"KEY2a2":"5"
},
{
"KEY2a1":"6",
"KEY2a2":"7"
}
],
"KEY2b":"8"
}
],
"KEY3":"9"
}
有没有办法让我读取foo_brackets
这样我就可以调用foo_brackets_json['KEY2']['KEY2b']
?
foo_brackets_json['KEY2']
引用一个列表,这里有一个元素。在必须使用整数索引引用该列表中包含的词典:
不要试图删除方括号;此处可能有0个或多个嵌套字典。您必须确定在没有一个嵌套字典的情况下应该发生什么。在
上面的硬编码引用假定列表中始终至少有一个这样的字典,并且不关心是否有多个这样的字典。在
您可以使用循环来处理0个或更多个案例:
^{pr2}$现在,您将逐个处理每个嵌套字典。这将适用于空列表情况,如果有多个。在
您可以将0或多个错误设置为错误:
等等,这取决于你的实际情况。在
相关问题 更多 >
编程相关推荐