web-dev-qa-db-fra.com

l'objet 'dict' n'a pas d'attribut 'append' Json

J'ai ce code qui ajoute 50 points à un utilisateur dans mon fichier json mais je continue à recevoir un 'dict' object has no attribute 'append' lorsque j'essaie d'ajouter de nouveaux utilisateurs aux utilisateurs:

def updateUsers(chan):
    j = urllib2.urlopen('http://tmi.Twitch.tv/group/user/' + chan + '/chatters')
    j_obj = json.load(j)
    with open('dat.dat', 'r') as data_file:
        data = json.load(data_file)
        for dat in data['users']:
            if dat in j_obj['chatters']['moderators'] or j_obj['chatters']['viewers']:
                data['users']['tryhard_cupcake']['Points'] += 50
            else:
                data['users'].append([dat]) # append doesn't work here
    with open('dat.dat', 'w') as out_file:
        json.dump(data, out_file)

Quelle est la bonne façon d’ajouter de nouveaux objets/utilisateurs à users?

5
KekMeister Johhny

Ce message d'erreur a votre réponse.

https://docs.python.org/2/tutorial/datastructures.html#dictionaries

 data['users'] = [dat]

Si vous souhaitez ajouter à la liste existante.

templist = data['users']
templist.extend(dat)
data['users'] = templist
10
UglyCode

Il semble que data['users'] soit un dictionnaire, vous ne pouvez donc utiliser que les méthodes du dictionnaire pour ajouter des clés et des valeurs.

1
ham_string