gpt4 book ai didi

python - pyodbc 中的字符串参数

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:29 25 4
gpt4 key购买 nike

我正在重新创建以很难访问的格式存储的数据。大多数数据已成功移动和转换。此 Python 脚本旨在根据旧数据库识别每个对象的父级,并在新数据库中更新其父级(当前为空)。

我有:

# skip the Alpha
for x in range(2, i+1):
on_level = 'ORG_LEVEL' + str(x)
parent_level = 'ORG_LEVEL' + str(x-1)

cur.execute('''SELECT ?, ?
FROM OsuOrgs
WHERE ORG_LEVEL= ? ''',
[ on_level, parent_level, x ])

for row in cur.fetchall():
members.append( { "unv_id":str(row[0]), "parent":str(row[1]) } )

for member in members:
print(member)

我遇到的问题是我的 members[] 对象被 on_level 和 parent_level 的垃圾值填充。我的假设是这与 pyodbc 如何传递参数有关,但我有点困惑为什么会这样。

例子:

{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}
{'parent': 'ORG_LEVEL7', 'unv_id': 'ORG_LEVEL8'}

最佳答案

你可能需要改变

cur.execute('''SELECT ?, ?
FROM OsuOrgs
WHERE ORG_LEVEL= ? ''',
[ on_level, parent_level, x ])

cur.execute('''SELECT {0}, {1} 
FROM OsuOrgs
WHERE ORG_LEVEL= ? '''.format(on_level, parent_level),
x )

关于python - pyodbc 中的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573122/

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