nei*_*umi 2 python dictionary sqlalchemy
非常感激任何的帮助。我有一个使用sqlalchemy的连接引擎,它可以完美连接。我想在用户在tkinter条目框中提供信息的地方使其动态化,然后将该信息解析为字典,然后由函数调用该字典,然后从那里创建引擎。
我的工作引擎是:
engine = sqlalchemy.create_engine('postgresql+pg8000://myuser:mypass@localhost/mydb')
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西
sqlalchemy.create_engine('postgresql+pg8000://DBUSER:DBPASS@DBHOST/DBNAME')
Run Code Online (Sandbox Code Playgroud)
其中,变量首先由tkinter Entry提供,并放入dict中,然后由连接函数读取。
我有以下
from sqlalchemy import create_engine
from sqlalchemy.engine import url
"""
These vars below are for testing. Ultimately they will be resolved
by a get() from tkinter which will take the values entered by a
user into an Entry widget and place them into the dict below.
The db_connect() func should build the url from the dict.
"""
DBNAME = 'mydb'
DBUSER = 'myuser'
DBPASS = 'password'
DBHOST ='localhost'
PNUM = '5432'
import json
import urllib.request as myurl
DATABASE = {
'drivername': 'postgres+pg8000',
'host': DBHOST,
'port': PNUM,
'username': DBUSER,
'password': DBPASS,
'database': DBNAME
}
def db_connect():
create_engine(url(DATABASE))
"""This func should create the db engine connect
connect = sqlalchemy.create_engine(db_connect())
df = pd.read_sql("SELECT * FROM nc_data",con=connect)
Run Code Online (Sandbox Code Playgroud)
我得到错误
db_connect返回create_engine(url(DATABASE))TypeError:“模块”对象不可调用
url.URL()通过使用关键字参数将其输入到sqlalchemy的函数中
create_engine(url.URL(**DATABASE))
Run Code Online (Sandbox Code Playgroud)
注意**和正确的方法url.URL(),而不是仅仅url按照http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#sqlalchemy.engine.url.URL
关于做什么的参考**:https : //docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists