使用pyodbc我正在处理使用输出执行存储过程。
import pyodbc
conn = pyodbc.connect('DRIVER=' + driver + ';PORT=1433;SERVER=' + server +
';PORT=1443;DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
cmd = conn.cursor()
sql = """\
Too long to post
"""
params = ('EOXH39020220', 'EOXH39020245', 'EOXH3E360011')
for item in params:
cmd.execute(sql, item)
rst = cmd.fetchall()
print(rst)
conn.close
我正在测试的特定存储过程的输出产生以下内容:
[(False, 1, 3, 2, 967, 6, 'ABC-DE-FGHI', 'LOREM', 'IPSUM', 'CLASS PRODUCT', 'F/P', 'LABELDESCRIPTION', 'N/A', 'DESCRIPTION', 'ASL66', 'ASL10', '3FE50712BA', 'ABC-DE-FGHI', 'PO', 'ITEM#', 'OEM#', 'F/P', '1')]
[(False, 1, 4, 1, 967, 7, 'ABC-DE-FGHI', 'LOREM', 'IPSUM', 'CLASS PRODUCT', 'F/P', 'LABELDESCRIPTION', 'N/A', 'DESCRIPTION', 'ASL66', 'ASL10', '3FE50712BA', 'ABC-DE-FGHI', 'PO', 'ITEM#', 'OEM#', 'F/P', '1')]
[(False, 1, 4, 2, 967, 8, 'ABC-DE-FGHI', 'LOREM', 'IPSUM', 'CLASS PRODUCT', 'F/P', 'LABELDESCRIPTION', 'N/A', 'DESCRIPTION', 'ASL66', 'ASL10', '3FE50712BA', 'ABC-DE-FGHI', 'PO', 'ITEM#', 'OEM#', 'F/P', '1')]
我不能使用.split
,因为它不是真正的字符串。如何在列表中拆分元组的内容?我想要做的是将结果分解为要使用的变量。我没有得到我期望看到的结果。例如:
testlist = [(False, 1, 3, 2, 967, 6, 'ABC-DE-FGHI', 'LOREM', 'IPSUM', 'CLASS 1 PRODUCT', 'F/P', 'DESCRIPTION', 'N/A', 'DESCRIPTION', 'ASL66', 'ASL10', '3FE50712BA', 'ABC-DE-FGHI', 'PO', 'ITEM#', 'OEM#', 'F/P', '1')]
for i in testlist[0]:
print(testlist[0][i])
结果:
假 1 2 3
正如roganjosh所说,我完全错过了我在循环中所需要的东西。 前5项:
testlist = [(False, 1, 3, 2, 967, 6, 'ABC-DE-FGHI', 'LOREM', 'IPSUM', 'CLASS PRODUCT', 'F/P', 'LABELDESCRIPTION', 'N/A', 'DESCRIPTION', 'ASL66', 'ASL10', '3FE50712BA', 'ABC-DE-FGHI', 'PO', 'ITEM#', 'OEM#', 'F/P', '1')]
newlist = []
for x in testlist[0]:
newlist.append(x)
print(newlist[:5])
[假,1,3,2,967]
答案 0 :(得分:1)
问题有点困惑,但我们在评论中确定了问题。从dataChanged
返回的内容中,您的标题大致准确:包含单个元组的列表,不是字典。
fetchall()
通常在您预期多个匹配时使用,其中每一行都是列表中的元组(因此,如果您&#39,您可以考虑在评论中使用@Barmar所述的fetchall()
;总是得到一个结果。)
在评论中,您声明您尝试了以下操作,但它没有工作:
fetchone()
它赢了 - for i in testlist[0]:
print(testlist[0][i])
让您可以访问元组,但是您尝试访问它,就好像它是以testlist[0]
为键的字典一样。相反,i
是分配给该元组中每个项目的名称。
解决方案就像这样简单:
i