Python &引用';功能';对象不可下标";

Python &引用';功能';对象不可下标";,python,github,Python,Github,代码: 出于某种原因,我一直会遇到以下错误: 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

代码:

出于某种原因,我一直会遇到以下错误:

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']
用户中的
(回购、语言、页面)
1个def用户(回购协议、语言、页面):#返回电子邮件地址以传递到reportive
2#进口pdb;pdb.set_trace()
---->3字典={'language_search':language,'page':page,'followers':repo['followers'],'github_repo':repo['name'],'fork','forks':repo['forks'],'github_owner':repo['owner'],'language':repo['language','created_at':repo['created_at','forks','forks':repo['forks','followers','user['followers']
4#dictionary={,'watchers':repo['watchers'],'username':user['login']},'type':user['type'],'public_repos':user['public_repos']
5个字段\u user=['blog'、'company'、'location'、'name']
TypeError:“函数”对象不可下标

我不明白为什么。我只想在字典中写更多的键:值对。但由于某些原因,这会不断引发此错误。

用户
是一个函数:

<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
但在该函数中,您尝试将其用作字典:

def user(repo, language, page):
在定义词典的行上:

 user['followers']
您可以将该行拆分为若干行,以使其更具可读性和可调试性:

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']}
您似乎希望在您的函数中始终有一个
用户
字典:

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']  # `user` is a function, what did you mean instead?
}

也许您有一个名为
的全局用户
,它是一个字典?模块中不能同时具有同名词典和函数。重命名一个或另一个。

user
是一个函数:

<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
但在该函数中,您尝试将其用作字典:

def user(repo, language, page):
在定义词典的行上:

 user['followers']
您可以将该行拆分为若干行,以使其更具可读性和可调试性:

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']}
您似乎希望在您的函数中始终有一个
用户
字典:

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']  # `user` is a function, what did you mean instead?
}

也许您有一个名为
的全局用户
,它是一个字典?模块中不能同时具有同名词典和函数。重命名其中一个。

Pro提示:在映射中使用
键,而不是
映射。具有_键(键)
。不要使用
mapping.get(key)
用于
key in mapping
也可以的测试。反向投票,这是一个常见错误,人们应该在搜索时找到它。Pro提示:使用
key in mapping
而不是
mapping.has_key(key)
。不要使用
mapping.get(key)
用于
key in mapping
也可以的测试。反向投票,这是一个常见错误,人们应该在搜索时找到它。