【发布时间】:2021-01-19 20:54:39
【问题描述】:
我有一个用 Python 读取的 JSON 文件。 JSON(见下文)包含两个顶级项,都是数组,包含复杂的结构,包括较低级别的其他数组。出于某种原因,Python 似乎只从两个顶级数组中读取一项。
这是 JSON:
{
"deliverables": [
{
"name": "<uvCode>gadget1",
"objects": [
{ "name": "handler-plate" },
{ "name": "Cone" }
]
},
{
"name": "<uvCode>gadget2",
"objects": [
{ "name": "handler-plate" },
{ "name": "Cone" }
]
}
],
"uvCombinations": [
{
"name": "st01",
"uvMapping": [
{
"objectNameContains": "handler-plate",
"uvLayer": "UVMap1"
},
{
"objectNameContains": "Cone",
"uvLayer": "UVMap1"
}
]
},
{
"name": "st02",
"uvMapping": [
{
"objectNameContains": "handler-plate",
"uvLayer": "UVMap3"
},
{
"objectNameContains": "Cone",
"uvLayer": "UVMap2"
}
]
}
]
}
这是我读取和转储 JSON 文件的代码:
with open("file.json") as configFile:
configuration = json.load(configFile)
logging.debug("CONFIG: %s", json.dumps(configuration, indent=4))
这是输出:
CONFIG: {
"deliverables": [
{
"name": "<uvCode>gadget1",
"objects": [
{
"name": "handler-plate"
},
{
"name": "Cone"
}
]
}
],
"uvCombinations": [
{
"name": "st02",
"uvMapping": [
{
"objectNameContains": "handler-plate",
"uvLayer": "UVMap3"
},
{
"objectNameContains": "Cone",
"uvLayer": "UVMap2"
}
]
}
]
}
数组deliverables 的第二项(名称为<uvCode>gadget2)和数组uvCombination 的第一项(名称为st01)不知何故丢失。
我不是 Python 专家,但我认为这应该像魅力一样工作,奇怪的是,丢失的项目甚至不是同一个索引。如果您观察到名为 objects 和 uvMapping 的数组被正确读取,那就更有趣了。
我做错了什么?,可怜的家伙问
【问题讨论】:
-
我无法重现这个。我怀疑您正在阅读的文件不包含您认为的内容。
-
我无法重现此问题。给定您的 JSON 和 Python 代码,我会得到所有内容都完好无损的输出 JSON。其他事情正在发生。