Psycopg2 插入到 Postgres - 基于 Excel 的数据格式化为数字



我正在将Excel文件读取到熊猫中,然后尝试将值插入postgres db。我使用以下代码将数据转换为 python 日期:

date_val = 42565.0
year, month, day, hour, minute, sec = xlrd.xldate_as_tuple(date_val, 0)
py_date = "%02d.%02d.%04d" % (day, month, year)

我还没有能够找到使用 (psycopg2)、python 2.7.12 将日期列中的空值传递给 postgres 的解决方案。列中的某些值为空,pd.read_excel正在将这些值解析为NaN 。尝试将数据插入postres db时遇到的错误是:

<class 'sqlalchemy.exc.ProgrammingError'>, ProgrammingError('(psycopg2.ProgrammingError) column "created_at" is of type date but expression is of type double precisionnLINE 1: ...at, 0.0, 'NaN'::float, 9410, 921, 111, 'NaN'::flo...n  

我尝试用空字符串填充这些单元格,零作为整数或字符串,但每次都收到错误。

df['created_at'].fillna()

任何想法我应该如何解析这些值?

谢谢。

Excel 将日期存储为数值。 您需要将它们转换为日期时间值,请参阅如何在 Python 中读取 Excel 格式的日期?进行良好的讨论和解决方案。

最新更新