python - 为 Python LocustIO 格式化 Json

标签 python json python-3.x locust

为什么我收到此帖子调用的错误请求?它与 json 格式有关。如何重新格式化作为参数传递的 json 对象?我正在使用 LocustIO 和 Python 运行负载测试。

from locust import HttpLocust, TaskSet, task
from slumber import API 
import json, requests

nameInquiry = """
[{
  "data": {
    "Account Number": "1234567898",
    "Bank Code": "EBN",
    "AppId": "com.appzonegroup.zone",
    "deviceId": "a4a7427032c286e3",
    "Sender Phone Number": "+2348094399450",
    "Sender Conversation ID": "161503479186618e8726fc4-70c0-4768-a2ea-5217c3a3c26d",
    "FileId": ""
  },
  "instruction": {
    "FunctionId": "",
    "FlowId": "813dac4f-7e44-4873-b45f-f6f3b5dbe436",
    "InstitutionCode": "",
    "TimeOutSeconds": 30
  }
}]
"""
myheaders = {'Content-Type': 'application/json', 'Accept': 'application/json'}


class NameInquiries(TaskSet):
  @task(1)
  def send(self):
    response = self.client.post("/zoneflowsapi/api/Goto/goto/", data=json.dumps(nameInquiry), headers= myheaders )

    print("Response status code:", response.status_code)
    print("Response content:", response.text)

最佳答案

json.dumps 将 json 对象(列表和字典)作为输入并将其序列化并给出一个字符串作为输出。您正在为其提供 nameInquiry,它本身已经是一个字符串,因此是错误。

此外 post 得到一个字典作为输入,所以不需要序列化它。简单的解决方案是将 nameInquiry 设置为 json 对象(注意下面缺少的 """)并将其直接提供给帖子。

nameInquiry = [{
    "data": {
    "Account Number": "1234567898",
    "Bank Code": "EBN",
    "AppId": "com.appzonegroup.zone",
    ...
}]

...

response = self.client.post("/zoneflowsapi/api/Goto/goto/", data=nameInquiry, headers=myheaders)

否则你可以保留字符串并使用 json.loads 反序列化它:

nameInquiry = json.loads("""
[{
  "data": {
  "Account Number": "1234567898",...
""")

关于python - 为 Python LocustIO 格式化 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880156/

相关文章:

python - 将异步生成器转换为同步生成器

android - 成功生成apk后运行python脚本

python - Powershell 无法将 conda 识别为 cmdlet、函数或可运行程序

json - 将 JSON 转换为字符串错误字符串文字未终止

python3和pywin32关闭excel

python - 如何在pandas数据框中查找同时具有正值和负值的行

php - iOS 9.1 导致我的 JSON NSURL 连接到 PHP 页面时出现错误

xml - 您如何看待Microsoft Oslo MGraph?

regex - Python3 中带反斜杠的正则表达式

python - 乘客数量。错误 : list indices must be integers or slices, 未列出