我正在尝试连接到mysql数据库,与选项1一起正常工作:
from sqlalchemy import create_engine
engine = create_engine('mysql://root:root@localhost/lend', echo=True)
cnx = engine.connect()
x = cnx.execute("SELECT * FROM user")
Run Code Online (Sandbox Code Playgroud)
但在这里打破:
from pandas.io import sql
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()
Run Code Online (Sandbox Code Playgroud)
同
AttributeError:'Connection'对象没有属性'rollback'
我正在data_frame使用pandas.io.sql.read_frame以下方法直接从数据库中读取:
cnx = pandas.io.sql.connect(host='srv',user='me',password='pw',database='db')
df = pandas.io.sql.read_frame('sql_query',cnx)
Run Code Online (Sandbox Code Playgroud)
它可以很好地检索数据.但是我想解析其中一个列datetime64,类似于从CSV文件读取时可以做的事情,例如:
df2 = pandas.io.read_csv(csv_file, parse_dates=[0])
Run Code Online (Sandbox Code Playgroud)
但是没有parse_dates标志read_frame.建议采用哪种替代方法?
同样的问题适用index_col于read_csv,它指示哪个col.应该是索引.是否有推荐的方法来使用read_frame执行此操作?
Python和MySQL之间有一个漂亮而简单的接口吗?我查看了MySQLdb模块,SQLAlchemy和MySQL提供的模块.他们工作,但只是笨重,很难快速合作.我是Python的新手,但我在MATLAB中做到了这一点,他们有一个非常简单的界面.IE
每次要在Python中执行查询时,您似乎必须执行以下操作:
import datetime
import mysql.connector
cnx = mysql.connector.connect(user='scott', database='employees')
cursor = cnx.cursor()
query = ("SELECT first_name, last_name, hire_date FROM employees "
"WHERE hire_date BETWEEN %s AND %s")
hire_start = datetime.date(1999, 1, 1)
hire_end = datetime.date(1999, 12, 31)
cursor.execute(query, (hire_start, hire_end))
for (first_name, last_name, hire_date) in cursor:
print("{}, {} was hired on {:%d %b %Y}".format(
last_name, first_name, hire_date))
cursor.close()
cnx.close()
Run Code Online (Sandbox Code Playgroud)
在MATLAB中,我启动连接一次(比如启动程序时,然后检索某些东西就像(从这里)一样简单:
[Fn,Ln,Hd] = mysql(['SELECT first_name, last_name, hire_date FROM employees WHERE hire_date = ',num2str(some_date)])
Run Code Online (Sandbox Code Playgroud)
每次查询时都没有游标和连接,只需一个简单的I/O查询执行器和数据返回器.我喜欢玩数据库,有很多跨平台的项目.能够在MATLAB中即时连接和查看数据是一个很棒的功能.有没有Python桥来做到这一点?