我正在以json格式以Python转储MongoDB数据库。这是我的代码的一部分
cursor = collection.find()
with open(json_file_path, 'w') as outfile:
dump = json.dumps([doc for doc in cursor], sort_keys=False, indent=4, default=json_util.default)
outfile.write(dump)
问题在于pymongo添加了一个自己提交的_id
并创建了一个"_id": {"$oid": "5c2b4813e43eda7815444204"}
之类的条目。这会导致从此json文件加载时发生key '$oid' must not start with '$'
的错误。因此,我在考虑在导出数据库本身时是否可以同时修改或跳过该字段?我该怎么办?
{
"Employee ID": 9771504,
"NAME": "Harsh Wardhan",
"DOB": "14-Apr",
"MOBILE": 12345697890,
"Group": "SW-VS",
"_id": {
"$oid": "5c2b4813e43eda7815444204"
},
"Emai ID": "hwardhan@examples.com"
}
答案 0 :(得分:2)
假设为光标中的每个条目都添加了额外的ID,则可以在使用dict理解之前将其过滤掉。
cursor = collection.find()
with open(json_file_path, 'w') as outfile:
dump = json.dumps([{k:v for k,v in doc.items() if k != "_id"} for doc in cursor],
sort_keys=False, indent=4, default=json_util.default)
outfile.write(dump)