我正在尝试使用petl
库来构建在两个表之间复制数据的 ETL 过程。该表包含slug
目标上的唯一字段。为此,我编写了我的脚本,以便识别重复的 slug 并通过附加ID
到 slug 值来转换它们。
table = etl.fromdb(source_con, 'SELECT * FROM user')
# get whatever remains as duplicates
duplicates = etl.duplicates(table, 'slug')
for dup in [i for i in duplicates.values('id')]:
table = etl.convert(
table,
'slug',
lambda v, row: '{}-{}'.format(slugify_unicode(v), str(row.id).encode('hex')),
where=lambda row: row.id == dup,
pass_row=True
)
以上没有按预期工作,似乎该table
对象在循环后仍然具有重复值。
任何人都可以建议?谢谢