我在 MongoDB 中有一个包含大量嵌套文档的集合,我想展平并导入到 Pandas 中。有一些嵌套的字典,还有我想要转换为列的字典列表(有关详细信息,请参阅下面的示例)。
我已经有了适用于小批量文档的功能。但解决方案(我在这个问题的答案中找到了它)使用 json. 该json.loads操作的问题是,它会MemoryError因集合中的选择过多而失败。
我尝试了许多建议其他 json 解析器(例如 ijson)的解决方案,但由于不同的原因,它们都没有解决我的问题。如果我想通过 json 继续进行转换,剩下的唯一方法就是将更大的选择分成更小的文档组并迭代解析。
此时我想,——这是我的主要问题——也许有一种更聪明的方法来取消嵌套,而无需直接在 MongoDB 或 Pandas 中或以某种方式组合通过 json 绕道?
这是一个简短的示例文档:
{
'_id': ObjectId('5b40fcc4affb061b8871cbc5'),
'eventId': 2,
'sId' : 6833,
'stage': {
'value': 1,
'Name': 'FirstStage'
},
'quality': [
{
'type': {
'value': 2,
'Name': 'Color'
},
'value': '124'
},
{
'type': {
'value': 7,
'Name': 'Length'
},
'value': 'Short'
},
{
'type': {
'value': 15,
'Name': 'Printed'
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是成功的数据帧表示的样子(为了便于阅读,我跳过了“_id”和“sId”列:
eventId stage.value …Run Code Online (Sandbox Code Playgroud)