最近用到了MongoDB,需要从数据库中读取数据,按照《利用python进行数据分析》的代码
#pip install pymongo 首先安装pymongo(MongoDB官方驱动器)
import pymongo
con = pymongo.Connection('localhosst',port=27017)
然后就华丽丽的报错了,错误显示,没有connection属性,
dir(pymongo) 看了一下,果然是没有。
搜了一下网上教程,大都是一样要用从connection属性,
看来是版本更新的问题,再搜,果然是,现在没有connection属性了,需要用pymongo.MongoClient()
# encoding: UTF-8
import datetime
import pymongo
import pandas as pd
from pymongo import MongoClient
from pandas import Series,DataFrame
client = MongoClient('localhost', port=27017)
# 从MongoDB中读取数据并将其转换为DataFrame格式。
db = client['db'].table#也可以用client['db']['table'] 或client.db.table其中db、table分别为数据库中的database名和table名
data = DataFrame()
datestr = datetime.datetime.now().strftime('%Y%m%d')
for dataset in db.find({'date':datestr}): # 按具体日期查找数据
dataset = {'datetime':Series(dataset['datetime']),
'myfile':Series(dataset['myFile'])}
dataset_df = DataFrame(dataset)
data_df_con = pd.concat([data, dataset_df], axis=0)
data_df.to_csv(datestr +'.csv',sep=',')
这个代码看起来有点长,其实可以一行搞定:
DataFrame(MongoClient('localhost', 27017)['VnTrader_1Min_Db'].IF1701.find({'date':datetime.datetime.now().strftime('%Y%m%d')})).to_csv('myfile.csv'))