我在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()
似乎错误来自图书馆,但我还无法找到它。
答案 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可能是更好的选择。