• 接口测试中,json格式的报文发送时提示报文格式错误


    最近在接口测试时遇到一个奇怪的问题,data参数为json格式,运行时总是提示报文格式不对,把data参数放到JSON在线解析里面报文也是正确的。

    后来通过打印data找到了问题所在,在python中打印data数据,会自动把双引号变为单引号,而单引号JSON格式不认,所以提示报文格式错误。

    可以使用json.dumps(data)方法将数据保持双引号格式,

    接口测试中可以把data数据写成

    r = requests.post(url=url,data=json.dumps(data))形式,也可以写成r = requests.post(url=url,json=data),两者都可以,此时再运行接口就成功了。

    注:

    list,tuple,dict,set都是单引号 

    L = ['Michael', 100, True]
    t = ('Adam', 'Lisa', 'Bart')
    d = {'Adam': 95, 'Lisa': 85, 'Bart': 59} 
    s = set(['A', 'B', 'C']) 

    Python字典(dict)与json数据格式的区别和联系 

    在学习Python的时候,我们学习到,Python3 的标准数据类型有:

      数字(Number)

      字符串(String)

      列表(List)

      元组(Tumple)

      集合(Set)

      字典(Dictionary)

    发现字典和json数据格式有点像。接下来比较一下两者的异同。

    1. python dict 字符串用单引号,json强制规定双引号。
    2. python dict 里可以嵌套tuple, json里只有arrayjson.dumps({1:2}) 的结果是 {“1”:2},而python中的json模块函数:json.dumps((1,2)) 的结果是[1,2]
    3. json key name 必须是字符串, python 是hashable, {(1,2):1} 在python里是合法的,因为tuple是hashable type;{[1,2]:1} 在python里TypeError: unhashable “list”
    4. json: true false null ;python:,True False None
    5. Python中提供了json.loads()转换函数,方便json数据的调用。

  • 相关阅读:
    使用jquery-qrcode生成二维码
    ASP.NET匿名对象与集合的使用
    ASP.NET Core 之跨平台的实时性能监控
    centos7如何将docker容器配置成开机自启动
    linux 查看系统信息命令
    基于.NET CORE微服务框架 -浅析如何使用surging
    Docker 两键创建 ZeroTier moon 节点
    kubernetes-dashboard获取令牌登陆
    docker环境下使用gitlab,gitlab-runner 为 NetCore 持续集成
    Docker For MYSQL 8.0 特别注意修复数据库新的验证方式
  • 原文地址:https://www.cnblogs.com/hpzyang/p/10304292.html
Copyright © 2020-2023  润新知