【发布时间】:2019-05-22 14:09:03
【问题描述】:
我有一个元组值字典,其中一些包含 1 个元素的元组,一些包含多个元素的元组,我想将字典中的每个元组传递给 Oracle SQL 查询并执行一些操作。但是,不幸的是,单元素元组在末尾生成一个额外的逗号,只是为了区分 python 中的列表和元组,这很烦人。
我的元组字典如下所示:
orderid_dict =
`{foo : (121, 122, 123, 124),
bar : (221,),
zoo : (331, 332),
xyz : (441,442,443, 444, 445,446),
abc : (551,)}`
`
dfs=[]
for x in orderid_dict:
query = """select * from table where order_id in
"""+str(orderid_dict[x])
df=pd.read_sql_query(query, conn)
dfs.append(df)`
当我执行这个循环时,它会抛出一个错误:
DatabaseError: sql 'select * from table where order_id in (221,)'执行失败:ORA-00936: 缺少表达式
有没有一种方法可以去掉字典中所有单元素元组的最后一个逗号?
我尝试使用:
`for x in orderid_dict:
",".join(str(x) for x in orderid_dict[x])`
它不会给我一个错误并且它不起作用。
如果有人能帮助我解决这个问题,我将不胜感激。
【问题讨论】:
标签: python-3.x dictionary tuples