AttributeError: 'tuple' object has no attribute 'strftime' issue on postgres
AttributeError: 'tuple' object has no attribute 'strftime' issue on postgres
您好,我正在尝试获取时间戳,它是存储在我的 postgres 数据库 table 时间列中的字符串。但是,当试图在我的代码中获取它时,它返回错误
dateonlystring = stamp.strftime("%Y-%m-%w-%W %H:%M:%S") AttributeError: 'tuple' object has no attribute 'strftime'
我不确定为什么或如何将元组转换为字符串。
我的代码:
async def check_mute(self):
guild = self.bot.get_guild(750744359650109661)
for member in list(guild.members):
member_role = discord.utils.get(member.guild.roles, name="Members")
restricted_role = get(guild.roles, name="Restrict")
conn = psycopg2.connect(DATABASE_URL, sslmode='require')
cursor = conn.cursor()
cursor.execute("SELECT time FROM blacklist WHERE username=%s", (member.id, ))
stamp = cursor.fetchall()[0]
if restricted_role in member.roles:
if stamp:
datestamp = datetime.now()
datetimestring = str(datestamp.now().strftime("%Y-%m-%w-%W %H:%M:%S"))
dateonlystring = stamp.strftime("%Y-%m-%w-%W %H:%M:%S")
if (datetimestring > dateonlystring):
await member.add_roles(member_role)
await member.remove_roles(restricted_role)
print("Done.")
我的 table 设置:
table
如果能提供帮助或指导,我们将不胜感激。
fetchall()
returns 可迭代的元组,即 list/tuple 元组。每个外部可迭代对象都是数据库中的一行,内部元组中的每个元素都是一列的值。
stamp = cursor.fetchall()[0]
stamp
是一个元组(如错误所示)。要获取 time
列的值,您需要访问 stamp[0]
,因此
stamp[0].strftime("%Y-%m-%w-%W %H:%M:%S")
您好,我正在尝试获取时间戳,它是存储在我的 postgres 数据库 table 时间列中的字符串。但是,当试图在我的代码中获取它时,它返回错误
dateonlystring = stamp.strftime("%Y-%m-%w-%W %H:%M:%S") AttributeError: 'tuple' object has no attribute 'strftime'
我不确定为什么或如何将元组转换为字符串。
我的代码:
async def check_mute(self):
guild = self.bot.get_guild(750744359650109661)
for member in list(guild.members):
member_role = discord.utils.get(member.guild.roles, name="Members")
restricted_role = get(guild.roles, name="Restrict")
conn = psycopg2.connect(DATABASE_URL, sslmode='require')
cursor = conn.cursor()
cursor.execute("SELECT time FROM blacklist WHERE username=%s", (member.id, ))
stamp = cursor.fetchall()[0]
if restricted_role in member.roles:
if stamp:
datestamp = datetime.now()
datetimestring = str(datestamp.now().strftime("%Y-%m-%w-%W %H:%M:%S"))
dateonlystring = stamp.strftime("%Y-%m-%w-%W %H:%M:%S")
if (datetimestring > dateonlystring):
await member.add_roles(member_role)
await member.remove_roles(restricted_role)
print("Done.")
我的 table 设置:
table
如果能提供帮助或指导,我们将不胜感激。
fetchall()
returns 可迭代的元组,即 list/tuple 元组。每个外部可迭代对象都是数据库中的一行,内部元组中的每个元素都是一列的值。
stamp = cursor.fetchall()[0]
stamp
是一个元组(如错误所示)。要获取 time
列的值,您需要访问 stamp[0]
,因此
stamp[0].strftime("%Y-%m-%w-%W %H:%M:%S")