前言
输入MongoDB集合名称然后导出文档对象到csv文件
代码实现
# -*- coding: UTF-8 -*-
"""
@description 工具类,数据库
@author wendell
"""
from pymongo import MongoClient
import csv
import codecs
def get_client():
"""
获取连接客户端
:return: 链接客户端
"""
return MongoClient("mongodb://localhost:27017/", connect=False)
def get_db(db=None):
"""
获取数据库
:param db: 默认链接到python数据库
:return:
"""
if not db:
db = 'python'
return get_client().get_database(name=db)
def close_client(client):
"""
关闭客户端连接
:param client: 连接客户端
:return:
"""
if client:
client.close()
def export_to_csv(collection_name, file_name=None):
if not file_name:
file_name = '{}.csv'.format(collection_name)
db = get_db()
cursor = db[collection_name].find()
columns = []
data_list = []
for data in cursor:
if len(columns) == 0:
columns = data.keys()
row_data = []
for column in columns:
row_data.append(data[column])
data_list.append(row_data)
if len(columns) == 0:
return
with codecs.open(file_name, 'w', 'utf-8') as csvfile:
writer = csv.writer(csvfile)
# 先写入columns_name
writer.writerow(columns)
# 写入多行用writerows
writer.writerows(data_list)
export_to_csv('lat_lng_items')
tips: 数据库基础工具类并非本人原创