我尝试将MongoDB记录加载到SQL数据库中,其中每个对象只是Mongo数据转储。我有2-3层嵌套-我想知道什么是最好的方法来将所有ObjectID重新格式化为字符串(或者只是不捕获任何_id,因为它们都有一个UUID对应项)。
我尝试过将每个对象转换为字符串,再转换回dict,但没有成功。抛出的错误是“JSON对象不可序列化”我尝试过$toString,但没有处理嵌套列表。
蒙哥医生大概是这样的:
{
_id: ObjectId('xxxxxx'),
name: 'steve',
data: {
_id: ObjectId('xxxxxx'),
value: xx,
}
}
也可以有另一层嵌套。我希望它变成:
{
_id: 'xxxxxx',
name: 'steve',
data: {
_id: 'xxxxxx',
value: xx,
}
}
文档的大小,递归将花费太长时间。当在BigQuery中作为JSON列加载时,我得到错误“ObjectID不可JSON序列化”,因此无法上传。
1条答案
按热度按时间rekjcdws1#
JSON模块在类型不可序列化时提供一个默认值,它能够将每个
ObjectID
转换为str,并准备上传到BQ。