附加在列表中[Python]

问题描述

有人可以向我解释为什么我有错误消息:

第27行,在 liste_de_courses.append(item_add)

AttributeError:'str'对象没有属性'append

预先感谢您的帮助

import os
import json

dossier_courant = os.path.dirname(__file__)

dossier = os.path.join (dossier_courant,"liste.json")

if os.path.exists(dossier):
    with open (dossier,"r") as f:
        liste_de_courses = json.load(f)
else:
    liste_de_courses = []

affichage = """
\t1: Add a item
\t2: Delete a item
\t3: Show a item
\t4: Empty a item
\t5: Over
"""
choix_utilisateur = "0"
while choix_utilisateur != "5":

    choix_utilisateur = input (affichage)
    if choix_utilisateur == "1":
        item_add = input ("What would you like to add ? ")
        liste_de_courses.append(item_add)
    elif choix_utilisateur == "2":
        item_delete = input ("What item do you wish to remove ? ")
        if item_delete in liste_de_courses:
            liste_de_courses.remove(item_delete)
print ("Bye")

解决方法

在此之后添加print(type(liste_de_courses))

with open (dossier,"r") as f:
    liste_de_courses = json.load(f)

liste_de_courses是什么类型?

,

您的JSON文件正在存储JSON字符串(Python str),而不是JSON数组(Python list)。您需要修复输入文件。

,

liste_de_courses不是列表,而是一个字符串。 我对json一无所知,但请检查json.load(f)返回什么类型。