出于某种原因,我想以csv文件的形式从数据库(sqlite3)转储一个表。我使用python脚本和elixir(基于sqlalchemy)来修改数据库。我想知道是否有任何方法可以将我使用的表转储到csv。
我看过sqlalchemy serializer,但它似乎不是我想要的。我做错了吗?我应该在关闭我的sqlalchemy会话后调用sqlite3 python module来转储到一个文件吗?或者我应该用一些自制的东西?
出于某种原因,我想以csv文件的形式从数据库(sqlite3)转储一个表。我使用python脚本和elixir(基于sqlalchemy)来修改数据库。我想知道是否有任何方法可以将我使用的表转储到csv。
我看过sqlalchemy serializer,但它似乎不是我想要的。我做错了吗?我应该在关闭我的sqlalchemy会话后调用sqlite3 python module来转储到一个文件吗?或者我应该用一些自制的东西?
9条答案
按热度按时间knpiaxh11#
这里稍微修改一下汉森的答案,使用SQLAlchemy而不是原始数据库访问
izj3ouym2#
有很多方法可以实现这一点,包括一个简单的
os.system()
调用sqlite3
实用程序,如果你已经安装了,但这里大致是我在Python中所做的:eoigrqb63#
我把上面的例子改编成我的基于sqlalchemy的代码,如下所示:
我用sqlalchemy 0.7.9就可以了。我认为这将适用于所有的sqlalchemy表和结果对象。
bbuxkriu4#
我知道这是旧的,但我只是有这个问题,这是我如何解决它
qcuzuvrc5#
如果您不介意手工制作列标签,我发现这很有用。
jaql4c8m6#
8ftvxx2r7#
我花了很多时间寻找这个问题的解决方案,最终创建了这样的东西:
它创建了一个CSV文件,其中包含列名和整个“movies”表的转储,而不包含“id”主列。
mo49yndu8#
In a modular way: an example using slqalchemy with automap and mysql.
database.py:
export_to_csv.py:
Results:
name,abv,country,is_state,is_lower48,slug,latitude,longitude,population,area Alaska,AK,US,y,n,alaska,61.370716,-152.404419,710231,571951.25 Alabama,AL,US,y,y,alabama,32.806671,-86.79113,4779736,50744.0 Arkansas,AR,US,y,y,arkansas,34.969704,-92.373123,2915918,52068.17 Arizona,AZ,US,y,y,arizona,33.729759,-111.431221,6392017,113634.57 California,CA,US,y,y,california,36.116203,-119.681564,37253956,155939.52 Colorado,CO,US,y,y,colorado,39.059811,-105.311104,5029196,103717.53 Connecticut,CT,US,y,y,connecticut,41.597782,-72.755371,3574097,4844.8 District of Columbia,DC,US,n,n,district-of-columbia,38.897438,-77.026817,601723,68.34 Delaware,DE,US,y,y,delaware,39.318523,-75.507141,897934,1953.56 Florida,FL,US,y,y,florida,27.766279,-81.686783,18801310,53926.82 Georgia,GA,US,y,y,georgia,33.040619,-83.643074,9687653,57906.14
i2loujxw9#
一个简单的方法来做它使用pandas + sqlalchemy