我遇到了Uber Python API的麻烦

时间:2016-03-25 14:36:00

标签: python api import uber-api

我在python中使用版本2.6进行编码,使用Uber API,当我尝试导入库uber_rides.auth时,它会抛出此错误:

Traceback (most recent call last):
  File "C:\Inetpub\vhosts\underdevelopment.biz\httpdocs\web\webtemp3\uber\socket.py", line 4, in <module>    
    from uber_rides.auth import AuthorizationCodeGrant
  File "C:\Inetpub\vhosts\underdevelopment.biz\httpdocs\web\webtemp3\uber\uber_rides\auth.py", line 133
    query_params = [qp: query_params[qp][0] for qp in query_params]
                      ^
SyntaxError: invalid syntax

我的脚本的原始代码是:

print('Content-Type: text/plain')
print('')
from uber_rides.auth import AuthorizationCodeGrant
def main():
    auth_flow = AuthorizationCodeGrant(
        'xxxxxx-xxxxxxx',
        'xxxxx-xxxxx',
        'xxx-xxxxxxxxx',
        '',
    )
    auth_url = auth_flow.get_authorization_url()

if __name__ == "__main__":
    main()

似乎错误来自图书馆,但我还无法找到它。

1 个答案:

答案 0 :(得分:2)

是的,这是无效的Python语法。但是,目前尚不清楚你是如何使用该文件的。

某人或某事改变了该文件。这不是original source code as distributed by Uber,其中该行使用正确的字典理解语法:

query_params = {qp: query_params[qp][0] for qp in query_params}

重新安装项目,上游没有错误。

请注意,上述语法仅适用于Python 2.7及更高版本。您可以尝试使用带有生成器表达式的dict()调用替换它,请参阅Alternative to dict comprehension prior to Python 2.7

query_params = dict((qp, query_params[qp][0]) for qp in query_params)

考虑到代码中可能存在其他问题,升级到Python 2.7可能是更好的选择。