如何使用python在csv中为子对象指定自己的列以导出MongoDB数据?
我对Python非常陌生,正在尝试将数据从MongoDB集合移动到CSV文档中(如果可能,需要使用Python,而不是mongoexport) 我使用Pymongo和CSV包将数据库中的数据导入CSV 这是我从MongoDB查询的数据结构: 主标识符-计算机名(父项):R2D2 详细信息-计算机详细信息(父级):操作系统(子级),所有者(子级) 我需要操作系统和所有者在CSV表中有自己的列,但它们一直位于名为计算机名的单列之下如何使用python在csv中为子对象指定自己的列以导出MongoDB数据?,python,mongodb,python-3.x,csv,pymongo,Python,Mongodb,Python 3.x,Csv,Pymongo,我对Python非常陌生,正在尝试将数据从MongoDB集合移动到CSV文档中(如果可能,需要使用Python,而不是mongoexport) 我使用Pymongo和CSV包将数据库中的数据导入CSV 这是我从MongoDB查询的数据结构: 主标识符-计算机名(父项):R2D2 详细信息-计算机详细信息(父级):操作系统(子级),所有者(子级) 我需要操作系统和所有者在CSV表中有自己的列,但它们一直位于名为计算机名的单列之下 这样子对象就可以有自己的列,而不是在父对象下分组了吗?我已经做过很多
这样子对象就可以有自己的列,而不是在父对象下分组了吗?我已经做过很多次了。您将有一个循环使用pymongo迭代mongo查询。在循环的底端,您将使用csv模块写入csv文件的每一行。你的问题涉及到循环过程中发生了什么。 MongoDB语法最接近Java语言,它也适合Mongo中的“关联数组”对象,即JSON。Pymongo使这些东西更接近Python类型 因此,父对象将直接来自pymongo iterable,如果它们有子对象,将通过Python字典:
import csv
from pymongo import MongoClient
client = MongoClient(ipaddress, port)
db = client.MyDatabase
collection = db.mycollection
f = open('output_file.csv', 'wb')
csvwriter = csv.writer(f)
for doc in collection.find():
computer_name = doc.get('Computer Name')
operating_system = computer_name.get('Operating System')
owner = computer_name.get('owner')
csvwriter.writerow([operating_system, owner])
f.close()
当然,可能还有很多其他没有子元素的列也直接来自doc 请你能发布一个你的代码的例子吗?