Python 属性错误:';布尔';对象没有属性';追加';
我是python初学者,最近我一直在尝试开发一个用于discord的机器人。问题是,当我键入命令Python 属性错误:';布尔';对象没有属性';追加';,python,discord,attributeerror,Python,Discord,Attributeerror,我是python初学者,最近我一直在尝试开发一个用于discord的机器人。问题是,当我键入命令“!new”时,出现以下错误: 我已经试着重写update_鼓励函数和inclusion.append,但是我无法摆脱这个错误。我没有办法解决这个问题 这是我的密码 import discord import os import requests import json import random from replit import db client = discord.Client() sa
“!new”
时,出现以下错误:
我已经试着重写update_鼓励函数和inclusion.append,但是我无法摆脱这个错误。我没有办法解决这个问题
这是我的密码
import discord
import os
import requests
import json
import random
from replit import db
client = discord.Client()
sad_words = [
"sad", "depressed", "unhappy", "angry", "miserable", "depressing"
]
starter_encouragements = [
"Cheer up!",
"Hang in there.",
"You are a great person / bot!"
]
if "responding" not in db.keys():
db["responding"] = True
def get_quote():
response = requests.get("https://zenquotes.io/api/random")
json_data = json.loads(response.text)
quote = json_data[0]['q'] + " -" + json_data[0]['a']
return (quote)
def update_encouragements(encouraging_message):
if "encouragements" in db.keys():
encouragements = db["encouragements"]
encouragements.append(encouraging_message)
db["encouragements"] = encouragements
else:
db["encouragements"] = [encouraging_message]
def delete_encouragement(index):
encouragements = db ["encouragements"]
if len(encouragements) > index:
del encouragements[index]
db["encouragements"] = encouragements
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
msg = message.content
if msg.startswith('!inspire'):
quote = get_quote()
await message.channel.send(quote)
if db["responding"]:
options = starter_encouragements
if "encouragements" in db.keys():
(options) += str(db["encouragements"])
if any(word in msg for word in sad_words):
await message.channel.send(random.choice(options))
if msg.startswith("!new"):
encouraging_message = msg.split("!new", 1)[1]
update_encouragements(encouraging_message)
await message.channel.send("new encouraging message added.")
if msg.startswith("!del"):
encouragements = []
if "encouragements" in db.keys():
index = int(msg.split("!del",1)[1])
delete_encouragement(index)
encouragements = db["encouragements"]
await message.channel.send(encouragements)
if msg.startswith("!lista"):
encouragements = []
if "encouragements" in db.keys():
encouragements = db["encouragements"]
await message.channel.send(encouragements)
if msg.startswith("!responding"):
value = msg.split("!responding ",1)[0]
if value.lower() == "true":
db["encouragements"] = True
await message.channel.send("Responding is on.")
else:
db["encouragements"] = False
await message.channel.send("Responding is off.")
第32行缺少
.content
方法。它们encouragements
关键字是一个布尔值,返回true
或false
语句。因此,您可以通过将第32行更改为:
encouragements.append(encouraging_message.content)
错误显示
encouragements
变量为bool
签出
dir(encouragements)
检查可以在此对象上使用哪些方法来获取列表对象仔细阅读错误消息:在encouragements.append(encouragements.append)(encouragements)
行中,`encouragements`是一个布尔值,而不是列表,因此它没有append
方法。你的问题的答案在于,为什么你一开始就认为它是一个列表。您是否使用了错误的变量?或者该变量实际上是在程序的某个点被布尔值覆盖的列表?您的代码中既有db[“encouragements”]=[鼓励消息]
又有db[“encouragements”]=True
。
encouragements.append(encouraging_message.content)