【问题标题】:requests.post with Python使用 Python 的 requests.post
【发布时间】:2017-02-28 17:05:23
【问题描述】:

我正在使用下面的 Python 脚本连接到受登录保护的 API。

import requests

url = 'https://api.json'
header = {'Content-Type': 'application/x-www-form-urlencoded'}
login = ('kjji@snm.com', 'xxxxx')
mnem = 'inputRequests':'{'inputRequests':'[{'function':'GDSP','identifier':'ibm','mnemonic':'IQ_TOTAL_REV'}]}}

    r = requests.post(url, auth=login, data=mnem, headers=header)

    print(r.json())

连接已建立,但由于数据请求的格式,我从 API 收到错误。原始格式​​如下。我找不到在上面的助记符中输入这个的方法:

inputRequests={inputRequests:
 [
  {function:"xxx",identifier:"xxx",mnemonic:"xxx"},
   ]
}

给出的错误是

C:\Users\xxx\Desktop>pie.py
  File "C:\Users\xxx\Desktop\pie.py", line 6
    mnem={'inputRequests':'{'inputRequests':'[{'function':'xxx','identifier':'xx','mnemonic':'xxx'}]}}
                                         ^
SyntaxError: invalid syntax

我不确定如何从这里开始。我在请求文档中找不到任何指向如何在数据字段中插入多个变量的内容。

【问题讨论】:

  • 抱歉,这是最近的尝试之一。我将所有内容都包含在 '' 中,如下所示,但这仍然不起作用:mnem={'inputRequests': {'inputRequests':[{'function':'GDSP','identifier':'ibm','mnemonic':' IQ_TOTAL_REV'}]}}
  • 请包括您收到的错误信息。

标签: python python-requests


【解决方案1】:

Python 中的 requests 模块接收原生 Python dict 作为 post 请求中的 JSON 数据,但不是字符串。因此,您可以尝试这样定义mnem

mnem = {
    'inputRequests':[
        {'function':'GDSP',
         'identifier':'ibm',
         'mnemonic':'IQ_TOTAL_REV'
        }
   ]}

【讨论】:

  • 这会从API触发一个错误:这个错误意味着助记词有错误。我应该提到我正在通过 Postman 使用相同的请求连接到 api,并且我得到了一个结果,因此上面的输入请求是有效的。 \Users\xxx\Desktop>pie.py {'Errors': '错误处理请求'}
  • 也许是这样的:mnem = {'inputRequests': { 'inputRequests':[ {'function':'GDSP', 'identifier':'ibm', 'mnemonic':'IQ_TOTAL_REV' } ]}}
  • 和上面一样的错误{'Errors': 'Error Processing the Request'
  • 这个错误是从远程服务器收到的,你的请求一定有问题。检查请求正文是否正确或是否缺少任何参数。 post 请求已成功发送到 API。
  • 我同意。使用 Postman 时,API 会正确响应以下正文。没有缺少的参数。 inputRequests={inputRequests: [ {function:"GDSP",identifier:"ibm",mnemonic:"IQ_TOTAL_REV"}, ] }
【解决方案2】:

data 参数应该是字典。

因此要传递三个参数尝试使用:

mnem = {'function':'GDSP','identifier':'ibm','mnemonic':'IQ_TOTAL_REV'}

【讨论】:

  • 这会触发 API 的错误:此错误表示助记符有错误,因为我缺少“输入请求”部分 \Users\xxx\Desktop>pie.py {' Errors': '处理请求时出错'}
猜你喜欢
  • 2019-04-18
  • 2018-06-03
  • 1970-01-01
  • 2020-10-16
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
相关资源
最近更新 更多