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

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

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

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

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

問題就出在組裝json字符串和簽名中,因?yàn)閜ython內(nèi)置的字典是無序的,導(dǎo)致我組裝好的json數(shù)據(jù)作為參數(shù)傳遞給自己編寫的簽名函數(shù)時(shí),字典內(nèi)部的順序是變化的,所以簽名前后的md5值不一樣,導(dǎo)致頻頻報(bào)錯(cuò),自己起初沒在意數(shù)據(jù)順序的事,因?yàn)閷?duì)接金蝶erp時(shí)沒有簽名這一項(xiàng),數(shù)據(jù)傳遞的很簡(jiǎn)單,導(dǎo)致排錯(cuò)時(shí)方向出現(xiàn)錯(cuò)誤。后來想到這了顧開始解決。

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

但,在對(duì)json數(shù)據(jù)使用json.dumps()方法時(shí),字符串化后的數(shù)據(jù)在逗號(hào)后會(huì)有一個(gè)空格,導(dǎo)致md5值出錯(cuò)

原理:

解決方法是

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

最后,將自己寫的函數(shù)留下來做個(gè)例子

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()的遇到的坑分析的詳細(xì)內(nèi)容,更多關(guān)于python字典和json.dumps()的坑的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python數(shù)據(jù)可視化之初探?Seaborn

    python數(shù)據(jù)可視化之初探?Seaborn

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

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

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

    零基礎(chǔ)寫python爬蟲之HTTP異常處理

    我們?cè)谑褂门老x來抓取網(wǎng)頁內(nèi)容的時(shí)候,HTTP異常是必須要注意的一項(xiàng),所以本文,我們來詳細(xì)探尋一下HTTP異常處理的相關(guān)內(nèi)容,通過一些具體的實(shí)例來分析一下,非常的簡(jiǎn)單,但是卻很實(shí)用。
    2014-11-11
  • python 循環(huán)結(jié)構(gòu)練習(xí)題

    python 循環(huán)結(jié)構(gòu)練習(xí)題

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

    Flask中app.route裝飾器參數(shù)的使用

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

    TensorFlow中如何確定張量的形狀實(shí)例

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

    python已協(xié)程方式處理任務(wù)實(shí)現(xiàn)過程

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

    python消除序列的重復(fù)值并保持順序不變的實(shí)例

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

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

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

    Scrapy框架爬取Boss直聘網(wǎng)Python職位信息的源碼

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

最新評(píng)論

河池市| 湖口县| 哈巴河县| 临西县| 苗栗县| 张家界市| 五河县| 衡阳县| 敦煌市| 陵川县| 阳朔县| 永平县| 曲沃县| 阿城市| 通榆县| 浦县| 岱山县| 永嘉县| 富民县| 桑日县| 沙湾县| 安西县| 修水县| 酒泉市| 武宁县| 潜山县| 兰西县| 扎兰屯市| 南皮县| 加查县| 天等县| 滕州市| 杭锦旗| 台中市| 蒲江县| 安徽省| 宝坻区| 沙坪坝区| 平江县| 安平县| 策勒县|