接口測試中,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數據的調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM