我目前使用的是github3.py版本0.9.6,在调用github3.organization(login)函数时收到一个错误:

Traceback (most recent call last):
  File "Main.py", line 23, in <module>
    __main__()
  File "Main.py", line 19, in __main__
    Stats.git_auth(username, password, access_token)
  File "/Users/edigiovine/Repositories/GitMetrics/Stats.py", line 36,   in git_auth
    git_orgs(gh)
  File "/Users/edigiovine/Repositories/GitMetrics/Stats.py", line 49, in git_orgs
    org = gh.organization(rel_org)
  File "/Library/Python/2.7/site-packages/github3/github.py", line 971, in organization
    return Organization(json, self) if json else None
  File "/Library/Python/2.7/site-packages/github3/orgs.py", line 236, in __init__
    super(Organization, self).__init__(org, session)
  File "/Library/Python/2.7/site-packages/github3/models.py", line 311, in __init__
    super(BaseAccount, self).__init__(acct, session)
  File "/Library/Python/2.7/site-packages/github3/models.py", line 77, in __init__
    super(GitHubCore, self).__init__(json)
  File "/Library/Python/2.7/site-packages/github3/models.py", line 30, in __init__
    self.etag = json.pop('ETag', None)
TypeError: pop() takes at most 1 argument (2 given)

我希望能得到一些帮助来解决这个问题。具体地说,我很好奇在最后一次通话中“无”是从哪里来的。
谢谢你的帮助!
Edt1:我试图基于用户提供的现有ORC列表来调用特定的组织,在我的情况下,它比组织的总列表小得多,因此,在所有情况下,迭代所有的组织对我来说都不会是一个好处(如果没有给出列表,这将是我的默认情况)。
再次感谢!
EDIT2:我正在实现的代码的一个示例,显然微不足道(不能提供私有信息):
# Defined username, password, access_token, and api_call_base in a
# config file, use them here to build the github object.
gh = github3.login(username, password, access_token, api_call_base)

# predefined_orgs_list is a list of the names of the organizations
# that are in focus for my project.
for needed_org in predefined_orgs_list:

    # This is the function that throws the error I am receiving.
    org = gh.organization(needed_org)

    # If above function works, then the following value should be
    # the same as in the predefined_orgs_list
    print org.login

EDIT3:我知道gh.organization函数是导致我的代码出现问题的原因,从堆栈跟踪可以看出这一点。我的问题是关于github3的库,并询问如何在models.py中解析/修复pop()函数,这是抛出错误的函数。
编辑4:我解决了这个问题,多亏了pdb:
通过遍历代码,我发现url的生成是动态的,基于对组织功能的输入。
具体来说,我得到的是一个默认的基本url,它指向正确收集组织数据的组织。我需要做的是修改我的代码以使用两个不同的url,这是基于给定一个org列表与获取所有org的条件。
这个问题现在已经解决了。谢谢大家!

最佳答案

仅就记录而言,当您期望dict并希望使用.pop(key, None)清除它,但在列表中使用它时,也会发生这种情况。对于列表,.pop()始终只接受一个参数。

关于python - github3 0.9.6 TypeError:pop()最多接受1个参数(给定2个),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41515471/

10-12 22:48