我正在重新创建以难以访问的格式存储的数据。大部分数据已成功移动和转换。这个Python脚本旨在根据旧数据库识别每个对象的父对象,并在新数据库中更新它的父对象(当前为null)。
我有:
# 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)
我遇到的问题是,我的member[]对象填充了乱丢的值on_laevel和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 )