首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python类抛出:无法将'list‘对象转换为str隐含

Python类抛出:无法将'list‘对象转换为str隐含
EN

Stack Overflow用户
提问于 2017-02-10 18:48:59
回答 1查看 155关注 0票数 1

似乎我无法访问Python3.5中的字段Database.query_stmt_list[i]

我的代码看起来像:

代码语言:javascript
复制
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

在线

代码语言:javascript
复制
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'

全栈

代码语言:javascript
复制
$ python dbcrud.py 
connected to: garbagedb
exception was sequence item 0: expected str instance, list found

我在这里做错什么了?有人看到出什么问题了吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 18:58:56

你想在那条线上形成一个字符串。而不是这个词

代码语言:javascript
复制
selected_fields

它是一个列表,而不是字符串,似乎是你想要的

代码语言:javascript
复制
', '.join(selected_fields)

要形成一个正确的逗号分隔,符合SQL的字段列表,是吗?

代码语言:javascript
复制
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'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42166605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档