1.导出json格式
# encoding:utf-8
import pymongo
import json
FILE = "E:\\test.json"
MONGO_URL = 'mongodb://127.0.0.1:27017'
MONGO_DB = 'Test'
MONGO_COLLECTION = 'test'
client = pymongo.MongoClient(MONGO_URL).MONGO_DB.MONGO_COLLECTION
datas = client.find({}, {"_id": 0})
with open(FILE, 'a', encoding="utf-8") as f:
item = {}
for data in datas:
# 选择要导出的字段
item['title'] = data['title']
item['text'] = data['text'].strip()
# ensure_ascii默认为True,导出时中文会出现乱码,所以有中文时这里应设置为False
f.write(json.dumps(item, ensure_ascii=False) + "\n")
2.导出csv格式:
# encoding:utf-8
import pymongo
import csv
import codecs
FILE = "E:\\test.csv"
MONGO_URL = 'mongodb://127.0.0.1:27017'
MONGO_DB = 'Test'
MONGO_COLLECTION = 'test'
client = pymongo.MongoClient(MONGO_URL).MONGO_DB.MONGO_COLLECTION
datas = client.find({}, {"_id": 0})
with codecs.open(FILE, 'a', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
# 设置csv头行,选择要导出的字段
writer.writerow(["title", "text"])
for data in datas:
writer.writerow([data['title'], data['text']])
写入csv时,我使用的是codecs.open而不是open,这是因为我使用open打开时报了错误:UnicodeEncodeError编码错误,
使用codecs可以自动转换格式编码。