最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python字典和json.dumps()的遇到的坑分析

 更新時間:2020年03月11日 14:39:39   作者:不要擋著我曬太陽  
在本篇文章里小編給大家整理了關于python字典和json.dumps()的遇到的坑分析,需要的朋友們可以學習下。

最近項目中需要與管易云erp做對接,看了他的接口文檔,php的示例代碼,于是用python仿寫。

其中傳的參數data中前面幾個json數據是固定的,最后需要加一個簽名,該簽名是對前面的json數據字符串化后,首尾拼接上screct字符串,再做md5處理(32位大寫),再將該簽名添加到之前的json中作為post參數傳遞過去。

問題就出在組裝json字符串和簽名中,因為python內置的字典是無序的,導致我組裝好的json數據作為參數傳遞給自己編寫的簽名函數時,字典內部的順序是變化的,所以簽名前后的md5值不一樣,導致頻頻報錯,自己起初沒在意數據順序的事,因為對接金蝶erp時沒有簽名這一項,數據傳遞的很簡單,導致排錯時方向出現錯誤。后來想到這了顧開始解決。

解決方法是使用collections庫中的OrderedDict(有序字典)模塊,組裝好的數據就不會亂序,做的md5簽名也就前后一致了

但,在對json數據使用json.dumps()方法時,字符串化后的數據在逗號后會有一個空格,導致md5值出錯

原理:

解決方法是

json.dumps(data,separators=(',',':'))

最后,將自己寫的函數留下來做個例子

def getShops():
  data = OrderedDict()
  data["appkey"] = appkey
  data["sessionkey"] = sessionkey
  data["method"] = method
  data["page_no"] = "1"
  data["page_size"] = "10"
  data["sign"] = sign(data,secret)
  
  response = requests.post(url=url, data=json.dumps(data))
  print(response.text)


def sign(data,secret):
  str = json.dumps(data,separators=(',',':'))
  fullStr = secret+str+secret
  signCode = hashlib.md5(fullStr.encode("utf-8")).hexdigest().upper()
  #print(signCode)
  return signCode

以上就是python字典和json.dumps()的遇到的坑分析的詳細內容,更多關于python字典和json.dumps()的坑的資料請關注腳本之家其它相關文章!

相關文章

  • python數據可視化之初探?Seaborn

    python數據可視化之初探?Seaborn

    Seaborn?是一個基于?Matplotlib?的?Python?數據可視化庫,它提供了更高級別的接口,使得創(chuàng)建美觀的統(tǒng)計圖形變得非常簡單,在這篇文章中,我們將討論?Seaborn?的基礎使用方法,包括如何創(chuàng)建各種常見的統(tǒng)計圖形
    2023-07-07
  • 詳解如何在cmd命令窗口中搭建簡單的python開發(fā)環(huán)境

    詳解如何在cmd命令窗口中搭建簡單的python開發(fā)環(huán)境

    這篇文章主要介紹了詳解如何在cmd命令窗口中搭建簡單的python開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 零基礎寫python爬蟲之HTTP異常處理

    零基礎寫python爬蟲之HTTP異常處理

    我們在使用爬蟲來抓取網頁內容的時候,HTTP異常是必須要注意的一項,所以本文,我們來詳細探尋一下HTTP異常處理的相關內容,通過一些具體的實例來分析一下,非常的簡單,但是卻很實用。
    2014-11-11
  • python 循環(huán)結構練習題

    python 循環(huán)結構練習題

    這篇文章主要給大家分享的是python 循環(huán)結構練習題,求兩個數最大公約數、整數反轉:如12345,輸出54321等多個練習題,需要的朋友可以參考一下
    2021-11-11
  • Flask中app.route裝飾器參數的使用

    Flask中app.route裝飾器參數的使用

    app.route()是Flask框架中用于定義路由的裝飾器函數,本文主要介紹了Flask中app.route裝飾器參數的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • TensorFlow中如何確定張量的形狀實例

    TensorFlow中如何確定張量的形狀實例

    這篇文章主要介紹了TensorFlow中如何確定張量的形狀實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python已協程方式處理任務實現過程

    python已協程方式處理任務實現過程

    這篇文章主要介紹了python已協程方式處理任務實現過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • python消除序列的重復值并保持順序不變的實例

    python消除序列的重復值并保持順序不變的實例

    今天小編就為大家分享一篇python消除序列的重復值并保持順序不變的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python for循環(huán)賦值問題

    python for循環(huán)賦值問題

    這篇文章主要介紹了python for循環(huán)賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Scrapy框架爬取Boss直聘網Python職位信息的源碼

    Scrapy框架爬取Boss直聘網Python職位信息的源碼

    今天小編就為大家分享一篇關于Scrapy框架爬取Boss直聘網Python職位信息的源碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論

奈曼旗| 革吉县| 麻江县| 云和县| 古浪县| 东至县| 宁德市| 广丰县| 灌云县| 苏尼特右旗| 邢台市| 孝义市| 商洛市| 凤冈县| 荔浦县| 新乡县| 武胜县| 永城市| 大足县| 蓬莱市| 铜山县| 聂拉木县| 泾源县| 阳城县| 商南县| 东阿县| 龙泉市| 海原县| 新田县| 怀柔区| 高碑店市| 九龙县| 青田县| 墨玉县| 新野县| 博客| 凌海市| 海丰县| 罗城| 桓仁| 禹州市|