SyntaxError:语法无效,python,查询API

时间:2018-04-24 17:58:20

标签: python python-3.x python-requests python-3.4

我正在学习如何使用python以编程方式查询API。我能够对API进行身份验证并获得200响应。

当我通过这样的参数时:

parameters = {"q": "serial_number:actual_serial"}

然后print(response.text)我得到了我期望的数据。

当我通过这样的参数时:

parameters = {"q": "serial_number:actual_serial"&"rows=5"}

我明白了:

    parameters = {"q": "serial_number:actual_serial"&"rows=5"}
TypeError: unsupported operand type(s) for &: 'str' and 'str'

当我尝试使用逗号时:

parameters = {"q": "serial_number:actual_serial", "rows=5"}

我得到了

    parameters = {"q": "serial_number:actual_serial", "rows=5"}
                                                              ^
SyntaxError: invalid syntax

所以我没有正确格式化参数的第二部分。我错过了什么?

我正在使用python3.4

当我使用Web API查询同一查询时,我得到的URL是: https://.......?q=state%3APENDING_DESTRUCTION&rows=5&......(抱歉,混淆了网址)。

1 个答案:

答案 0 :(得分:1)

这不是有效的Python,没有。您必须在字典中提供key: value对,以逗号分隔。在逗号之后,您的第二部分没有key: value对。

如果row是另一个参数,值为5,请将其作为键值对放入Python字典中:

parameters = {"q": "serial_number:actual_serial", "row": 5}

然后requests库负责将该字典转换为正确的URL查询字符串。