gpt4 book ai didi

python - 导入到 postgres(python 脚本)时如何进行列划分?

转载 作者:行者123 更新时间:2023-11-29 13:30:31 24 4
gpt4 key购买 nike

我正在尝试将价格作为销售额/已售出导入到列中。这是我的 python 脚本中的内容:

arg = {
'sold': row[4].strip(),
'sales': row[6].strip(),
}

cur.execute(
"""INSERT INTO
"sales"("sold","price","sales")
select %(sold)s,
float(%(sales)s)/float(%(sold)s),
%(sales)s,
;""", arg)

运行脚本时出现此错误:

psycopg2.ProgrammingError: syntax error at or near "'18'"
LINE 10: float('18')/float('3'),

如何转换为 float ?另外,将除以 0 设置为 0 的最简单方法是什么?

最佳答案

将参数转换为数字,否则 psycopg2 会将它们呈现为字符串

arg = {
'sold': int(row[4]),
'sales': float(row[6])
}

因为它们将被转换为数字,所以不需要 strip()

要使除以 0 为 0,请使用 case 子句:

cur.execute("""
insert into sales (sold, price, sales)
select
%(sold)s,
case
when %(sold)s = 0 then 0
else %(sales)s / %(sold)s
end,
%(sales)s,
;""", arg
)

关于python - 导入到 postgres(python 脚本)时如何进行列划分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830847/

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