gpt4 book ai didi

python - 我不明白为什么其中一个有效而另一个无效。请解释我如何错误地处理这个字符串

转载 作者:行者123 更新时间:2023-11-28 17:49:08 31 4
gpt4 key购买 nike

我是 Python 的新手,我想我应该通过写入 DB2 数据库来尝试一下。 Python 是 2.7,在 iSeries 上运行。我喜欢 Python 而不是 RPG 或 CL 的想法,因为我在待办事项列表中有很多事情,所以我从第一原则开始......但是我遇到了一个问题 - 我似乎不明白 Python处理字符串。这是一个例子:

请解释原因:

db2cursor.execute('insert into trickledb.trickledb values(?, ?, ?, ?, ?, ?, ?, ?)',
('01100158059642','1055','2012-09-12','13:30:05','0700','1','1','28010'))

完全没问题,(值已插入到我的数据库中)但是:

sql="'insert into trickledb.trickledb values(?, ?, ?, ?, ?, ?, ?, ?)',
('01100158059642','1055','2012-09-12','13:30:05','0700','1','1','28010')"
db2cursor.execute(sql)

给出错误:

db2cursor.execute(sql)
db2.Error: SQLState: 42601, Error code: -104
Token 'insert into trickledb.trickle was not valid.
Valid tokens: ( END GET SET CALL DROP FREE HOLD.

我的脑袋疼!

这是我的完整脚本 - 我正在从 XML 文件中提取数据:

#!/usr/bin/env python
# (Be in -*- python -*- mode.)
import db2
from xml.dom import minidom
db2connection = db2.connect()
db2cursor = db2connection.cursor()
xmldoc = minidom.parse('test.XML')
itemlist = xmldoc.getElementsByTagName('PluSale')
for s in itemlist :
print s.attributes['PluCode'].value, s.attributes['TicketNumber'].value, s.attributes['Time'].value, s.attributes['Date'].value, s.attributes['StoreNumber'].value, s.attributes['PosNo'].value, s.attributes['Qty'].value, s.attributes['SequenceNbr'].value
PluCode = s.attributes['PluCode'].value
TicketNumber = s.attributes['TicketNumber'].value
Time = s.attributes['Time'].value
Date = s.attributes['Date'].value
StoreNumber = s.attributes['StoreNumber'].value
PosNo = s.attributes['PosNo'].value
Qty = s.attributes['Qty'].value
SequenceNbr = s.attributes['SequenceNbr'].value
string = "%s,%s,%s,%s,%s,%s,%s,%s" %(PluCode,TicketNumber,Date,Time,StoreNumber,PosNo,Qty,SequenceNbr)
list = [PluCode,TicketNumber,Date,Time,StoreNumber,PosNo,Qty,SequenceNbr]
tuple = (PluCode,TicketNumber,Date,Time,StoreNumber,PosNo,Qty,SequenceNbr)
print string
print list
print tuple
db2cursor.execute ('insert into trickledb.trickledb values(?, ?, ?, ?, ?, ?, ?, ?)', tuple)
db2connection.commit()
db2cursor.close()
db2connection.close()

我一直在 .execute 语句参数位中用带有列表的字符串替换元组,但没有任何乐趣。我敢肯定,这是我不完全理解的非常简单的事情。这是我真正想要克服的绊脚石,因为我喜欢在我的 iSeries 上使用 Python 的想法......与 RPG 或 CL 相比,它太强大了......

最佳答案

你正在尝试的是这样的:

def foo(x, y=None): print x, y

foo(1, 2)

args = '1, 2'
foo(args)

在第二个实例中,您最终将使用一个字符串参数 (args) 调用 foo,该参数将绑定(bind)到 x , y 将以其默认值结束。 args 的内容看起来像您在第一个实例中传递的参数这一事实并不重要。 Python(以及大多数编程语言,就此而言)并不是那样工作的。

关于python - 我不明白为什么其中一个有效而另一个无效。请解释我如何错误地处理这个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512002/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com