"'Funktion' Objekt ist nicht subscriptable"
Code:
def user(repo, language, page):
# import pdb;pdb.set_trace()
dictionary = {'language_search': language, 'page': page, 'followers': repo['followers'], 'github_repo': repo['name'],'forked?': repo['fork'], 'forks': repo['forks'], 'github_owner': repo['owner'], 'language': repo['language'], 'created_at': repo['created_at'], 'forks': repo['forks'], 'watchers': repo['watchers'], 'username': user['login'], 'type': user['type'], 'public_repos': user['public_repos'], 'followers': user['followers']}
fields_user = ['blog', 'company', 'location', 'name']
fields_repo = ['description']
if user.get('email'):
dictionary_2 = {'email': user['email']}
for key in fields_user:
if user.has_key(key):
dictionary[key] = user[key]
for key in fields_repo:
if repo.has_key(key):
dictionary[key] = repo[key]
shelf[dictionary_2['email']] = dictionary
shelf.sync()
return dictionary_2['email']
print dictionary_2['email']
Für einige Grund, warum ich immer diese Fehlermeldung:
<ipython-input-40-98ec5463ecbd> in user(repo, language, page)
1 def user(repo, language, page): #returns email address to pass into rapportive
2 # import pdb;pdb.set_trace()
----> 3 dictionary = {'language_search': language, 'page': page, 'followers': repo['followers'], 'github_repo': repo['name'],'forked?': repo['fork'], 'forks': repo['forks'], 'github_owner': repo['owner'], 'language': repo['language'], 'created_at': repo['created_at'], 'forks': repo['forks'], 'followers': user['followers']}
4 # dictionary = {, , 'watchers': repo['watchers'], 'username': user['login']} , 'type': user['type'], , 'public_repos': user['public_repos']
5 fields_user = ['blog', 'company', 'location', 'name']
TypeError: 'function' object is not subscriptable
Und ich verstehe nicht, warum. Ich will einfach nur, mehr zu schreiben, Schlüssel:Wert-Paare Wörterbuch. Aber aus irgendeinem Grund, das hält wirft diesen Fehler.
- Pro-Tipp: Verwenden Sie
key in mapping
stattmapping.has_key(key)
. Verwenden Sie nichtmapping.get(key)
für tests, bei denenkey in mapping
würde entweder. - Zähler nach unten Stimmen, ist das ein häufiger Fehler, und die Menschen sollten es finden, wenn Sie suchen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
user
ist eine Funktion:aber in dieser Funktion sind Sie versucht, es zu benutzen als ein Wörterbuch statt:
auf der Linie, wo Sie definieren
dictionary
:Können Sie split, die Linie bis über mehrere um Sie lesbarer zu machen und debugfähiger:
Du scheinst zu erwarten, dass es zu einem
user
Wörterbuch in Ihrer Funktion in:Vielleicht haben Sie einen globalen namens
user
ist das ein Wörterbuch? Es ist nicht möglich, ein Wörterbuch und eine Funktion mit dem gleichen Namen in Ihrem Modul. Benennen Sie eine oder das andere.