接口测试中,json格式的报文发送时提示报文格式错误
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接⼝测试中,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数据的调⽤。