1. 程式人生 > 資料庫 >Python訪問MongoDB,並且轉換成Dataframe的方法

Python訪問MongoDB,並且轉換成Dataframe的方法

如下所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/7/13 11:10
# @Author : baoshan
# @Site : 
# @File : pandans_pymongo.py
# @Software: PyCharm Community Edition

import pymongo
import pandas as pd


def _connect_mongo(host,port,username,password,db):
 """ A util for making a connection to mongo. """
 if username and password:
  mongo_uri = "mongodb://%s:%s@%s:%s/%s" % (username,host,db)
  conn = pymongo.MongoClient(mongo_uri)
 else:
  conn = pymongo.MongoClient(host,port)

 return conn[db]


def read_mongo(db,collection,query={},host='test43',port=27017,username=None,password=None,no_id=True):
 """ Read from Mongo and Store into DataFrame. """

 # Connect to MongoDB
 db = _connect_mongo(host=host,port=port,username=username,password=password,db=db)

 # Make a query to the specific DB and Collection
 cursor = db[collection].find(query).limit(10)

 # Expand the cursor and construct the DataFrame
 df = pd.DataFrame(list(cursor))
 df.to_csv("abc.csv",encoding="utf_8_sig") # 處理中文亂碼問題

 if no_id:
  del df['_id']

 return df


read_mongo(db='service',collection='trace_log_regular',host='xxx',username="xxx",password="xxx")

小結:

1. 解決了pymongo訪問MongoDB的問題

2. 解決了查詢的資料轉成dataframe的問題

3. 解決了dataframe寫入到csv的問題

4. 解決了中文亂碼問題。

以上這篇Python訪問MongoDB,並且轉換成Dataframe的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。