报文格式错误 (5100030)

银联提供的测试包是可以通过的了,但是把银联提供的代码移到自己项目中时,就发生这样的结果,求高手解答

报文格式错误 (5100030)?最近在接口测试时遇到一个奇怪的问题,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数据格式有点像。接下来比较一下两者的异同。
python dict 字符串用单引号,json强制规定双引号。
python dict 里可以嵌套tuple, json里只有arrayjson.dumps({1:2}) 的结果是 {“1”:2},而python中的json模块函数:json.dumps((1,2)) 的结果是[1,2]
json key name 必须是字符串, python 是hashable, {(1,2):1} 在python里是合法的,因为tuple是hashable type;{[1,2]:1} 在python里TypeError: unhashable “list”
json: true false null ;python:,True False None
Python中提供了json.loads()转换函数,方便json数据的调用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-15
最近在接口测试时遇到一个奇怪的问题,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数据格式有点像。接下来比较一下两者的异同。

python dict 字符串用单引号,json强制规定双引号。
python dict 里可以嵌套tuple, json里只有arrayjson.dumps({1:2}) 的结果是 {“1”:2},而python中的json模块函数:json.dumps((1,2)) 的结果是[1,2]
json key name 必须是字符串, python 是hashable, {(1,2):1} 在python里是合法的,因为tuple是hashable type;{[1,2]:1} 在python里TypeError: unhashable “list”
json: true false null ;python:,True False None
Python中提供了json.loads()转换函数,方便json数据的调用
第2个回答  2021-06-01
报文格式错误 (5100030)?最近在接口测试时遇到一个奇怪的问题,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数据格式有点像。接下来比较一下两者的异同。
python dict 字符串用单引号,json强制规定双引号。
python dict 里可以嵌套tuple, json里只有arrayjson.dumps({1:2}) 的结果是 {“1”:2},而python中的json模块函数:json.dumps((1,2)) 的结果是[1,2]
json key name 必须是字符串, python 是hashable, {(1,2):1} 在python里是合法的,因为tuple是hashable type;{[1,2]:1} 在python里TypeError: unhashable “list”
json: true false null ;python:,True False None
Python中提供了json.loads()转换函数,方便json数据的调用
第3个回答  2018-07-13
银联的没做过,做过微信支付的,微信支付的签名是动态的,你这签名写个死的没问题?还有就是你可以看浏览器的控制台post的到底对不对,光看代码没用。追问

这些value结果都是后台处理完以后打印出来的结果,我只是把它们都复制招贴在html里而已。原本的输出意思是“打印请求HTML,此为请求报文,为联调排查问题的依据:......(图2内容)...”

追答

和微信支付完全不一样,不太清楚。

本回答被提问者采纳
相似回答