【问题标题】:Python not being able to send GET request via RequestsPython 无法通过请求发送 GET 请求
【发布时间】:2018-09-07 19:36:58
【问题描述】:

所以我已经很久没有编码了。最近又回到了它,这就是我想要做的。我从 Google 电子表格中获取 VINS,然后使用 Requests 库向 URL 发送 GET 请求,该 URL 然后解码该 VIN 并返回数据 (https://vpic.nhtsa.dot.gov/api/)。

这是我到目前为止所做的,我可以从电子表格中获取 VIN 并显示它,但是当我尝试发送 GET 请求时,Python 会为我返回大量错误。这是我第一次在 Python 上编写代码,我花了一些时间才将代码放到现在的位置。

def main():
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))

# Call the Sheets API
SPREADSHEET_ID = 'The Sheets ID that I use'
RANGE_NAME = 'A:A'
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID,
                                            range=RANGE_NAME).execute()
values = result.get('values', [])

if not values:
    print('No data found.')
else:

    for row in values:
        # Print columns A, which correspond to indices 0.
        print('%s' % (row[0]))
        URL = "https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/"
        VIN=row[0]
        PARAMS={VIN}
        r=requests.get(url=URL, params=PARAMS)
        data=r.json
        r.status_code
        text=r.text
        print(text)

if __name__ == '__main__':
    main()

我得到的错误如下,但我确实得到了 VIN(这里没有提到):

 Traceback (most recent call last):
  File "quickstart.py", line 47, in <module>
    main()
  File "quickstart.py", line 40, in main
    r=requests.get(url=URL, params=PARAMS)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 498, in request
    prep = self.prepare_request(req)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 441, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/Library/Python/2.7/site-packages/requests/models.py", line 309, in prepare
    self.prepare_url(url, params)
  File "/Library/Python/2.7/site-packages/requests/models.py", line 427, in prepare_url
    enc_params = self._encode_params(params)
  File "/Library/Python/2.7/site-packages/requests/models.py", line 97, in _encode_params
    for k, vs in to_key_val_list(data):
ValueError: too many values to unpack

我如何确定问题可能是什么?我在很长一段时间后编码,对 Python 完全陌生。

【问题讨论】:

    标签: python-2.7 rest get request


    【解决方案1】:

    通过查看他们的文档,您想要

    VIN=row[0]
    r=requests.get(url=URL + VIN, params={'format': 'json'})
    

    改为

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 2011-07-17
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      相关资源
      最近更新 更多