如何从 couchdb 查询文档并将其加载到 pandas 数据帧中



我已经在本地 couchdb 服务器上下载了 Twitter 数据。它被保存为json文件。

我使用此代码在 python 中输入数据库。第一个导入库

import couchdb
import pandas as pd
from couchdbkit import Server
import json
import cloudant

接下来连接到服务器并选择我要输入的数据库。

dbname = couchdb.Server('http://localhost:5984')
db = dbname['Test']
server = couchdb.Server('http://localhost:5984')

我可以使用python创建和删除数据库,但是我不知道如何将服务器中的数据放入jupyter笔记本。我想通过转发获得文本和时间来分析它。我只能看到来自python的一个JSON文件。

如果可能的话,我想将数据库中的所有 JSON 数据添加到 python 中的熊猫数据帧中,以便我也可以在其中进行分析。

问题是:如何查询文档并将其加载到熊猫数据帧中?

CouchDB 数据库中的所有文档都可以从/{db}/_all_docs具有查询属性include_docs端点中提取。响应是一个 json 对象,其中所有文档都列在rows字段中。

您可以使用requests包直接使用 CouchDB,然后使用 pandas.read_json 将响应加载到 pandas 中,或者使用内部将 json 转换为 python 对象的包couchdb然后直接加载响应,即执行以下操作:

import couchdb
import pandas as pd
couch = couchdb.Server('http://localhost:5984')
db = couch['Test']
rows = db.view('_all_docs', include_docs=True)
data = [row['doc'] for row in rows]
df = pd.DataFrame(data)

请注意,将完整的数据库读入内存可能会造成资源负担,因此您可能需要查看skiplimit _all_docs端点的查询参数,以便以较小的批次读取信息。

最新更新