似乎我无法访问Python3.5中的字段Database.query_stmt_list[i]。
我的代码看起来像:
class Database():
query_stmt_list = ['SELECT','INSERT','UPDATE','DELETE','FROM','WHERE']
def __init__(self):
self.query_stmt_list = Database.query_stmt_list
def db_select(self, *selected_fields, **kwargs):
self.selected_fields = selected_fields = list(selected_fields)
self.table = (kwargs['table']
if 'table' in kwargs
else selected_fields.pop())
self.where_field = (kwargs['where_field']
if 'where_field' in kwargs
else selected_fields.pop())
try:
with self.db.cursor() as cursor:
sql_tld_id_query = Database.query_stmt_list[0]+ selected_fields + Database.query_stmt_list[4] + table + Database.query_stmt_list[5] + where_field + '=' + 'www.website.com'
print("sql_tld_id_query is {}".format(sql_tld_id_query))
except Exception as gatherid_err:
print("exception was {}".format(gatherid_err))
self.db.rollback()
#instantiate class/method
dbclass = Database()
dbclass.set_db_setting('localhost', 'root', 'password', 'garbagedb')
dbclass.db_select(['id', 'name'], table='tld', where_field='name')我犯了一个错误,比如:
无法将“list”对象隐式转换为str
在线:
sql_tld_id_query = Database.query_stmt_list[0]+ selected_fields + Database.query_stmt_list[4] + table + Database.query_stmt_list[5] + where_field + '=' + 'www.website.com'全栈
$ python dbcrud.py
connected to: garbagedb
exception was sequence item 0: expected str instance, list found我在这里做错什么了?有人看到出什么问题了吗?
谢谢
发布于 2017-02-10 18:58:56
你想在那条线上形成一个字符串。而不是这个词
selected_fields它是一个列表,而不是字符串,似乎是你想要的
', '.join(selected_fields)要形成一个正确的逗号分隔,符合SQL的字段列表,是吗?
sql_tld_id_query = Database.query_stmt_list[0]+ ', '.join(selected_fields) + Database.query_stmt_list[4] + table + Database.query_stmt_list[5] + where_field + '=' + 'www.website.com'https://stackoverflow.com/questions/42166605
复制相似问题