Python 属性错误:';布尔';对象没有属性';追加';

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

我是python初学者,最近我一直在尝试开发一个用于discord的机器人。问题是,当我键入命令
“!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)