当我们使用DB API 2.0执行
然而,在pymongo中,当我们获取数据时,我们会得到一个字典列表。我想要实现这样的效果。
我希望得到的不是元组列表,而是字典列表或命名元组。
从效率的角度来看,我认为这是有意义的,因为模式已经定义好了,所以不需要为每个记录发送模式。
目前我正在使用以下解决方法:
cur.execute("select * from db.table")
获取数据时,我们得到一个光标对象,它看起来像是元组列表的生成器对象。然而,在pymongo中,当我们获取数据时,我们会得到一个字典列表。我想要实现这样的效果。
我希望得到的不是元组列表,而是字典列表或命名元组。
从效率的角度来看,我认为这是有意义的,因为模式已经定义好了,所以不需要为每个记录发送模式。
目前我正在使用以下解决方法:
cur.execute("select * from db.table")
columns = cur.columns_with_types
data = cur.fetchall()
df = pd.DataFrame(data,columns=[tuple[0] for tuple in columns])
data_reqd = df.to_dict('records')
当查询返回大量数据时,此方法表现不佳。
解决方法1:使用fetchmany(size=block_size)
,但这似乎不是一种优雅的处理方式。
解决方法2:这似乎是更好的处理方式。
cur.execute("select * from db.table")
columns = cur.columns_with_types
for tup in cur:
row = dict(zip(columns, tup))
# use row
有什么好的处理方法吗?欢迎对问题提出任何改进意见。