首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误'str‘对象在asyncpg中没有属性'toordinal’

错误'str‘对象在asyncpg中没有属性'toordinal’
EN

Stack Overflow用户
提问于 2020-07-25 05:25:57
回答 1查看 580关注 0票数 0

我的查询给出了奇怪的结果,所以我进行了一点调试,我将我的String,date对象更改为sqlalchemy Date,因此引发了此错误

代码语言:javascript
复制
asyncpg.exceptions.DataError: invalid input for query argument $2: '2020-03-11'
('str' object has no attribute 'toordinal')

这是我的sqlalchemyTable

代码语言:javascript
复制
db = sqlalchemy.Table(
"db",
metadata,
sqlalchemy.Column("date", Date),
sqlalchemy.Column("data", JSONB),
)

如何插入值:

代码语言:javascript
复制
query = db.insert().values(
    date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),
    data=value,
)
try:
    await database.execute(query)
except UniqueViolationError:
    pass

为什么我要将类型字符串更改为Date,因为当我运行如下查询时

代码语言:javascript
复制
query = f"""SELECT * FROM db WHERE date BETWEEN SYMMETRIC '{start_at}' AND '{end_at}'"""
return await database.execute(query)

它只返回一行和一列,类似于2020-03-11

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 23:24:57

我想说你的问题在这里:

date=datetime.strptime(key,"%d/%m/%Y").strftime("%Y-%m-%d"),

您正在向日期字段传递字符串。SQLAlchmey正在查找要传入的date对象,因此出现'('str‘对象没有’toordinal‘属性)’错误。toordinal是date对象的属性。卸下.strftime("%Y-%m-%d"),它应该可以正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63081680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档