urllib模塊中parse函數中的urlencode和quote_plus方法

原本只是向看一下quote_plus的做用,而後發現urlencode方法也是很方便的一個組合字符串的方法首先是介紹一下urlencode,他是將一些傳入的元素使用&串聯起來,效果以下:微信

>>>params = { "appid": 1, "mch_id": 1, "body": 1, "out_trade_no": 1, "total_fee": 1, "spbill_create_ip": 1, "notify_url": 1, "trade_type": 1, "nonce_str": 1 } >>>parse.urlencode(params) 'appid=1&mch_id=1&body=1&out_trade_no=1&total_fee=1&spbill_create_ip=1&notify_url=1&trade_type=1&nonce_str=1'

若是加以改造,就能夠直接應到生成微信支付的拼接字符串當中了:app

>>>parse.urlencode([(k, params[k]) for k in sorted(params)]) 'appid=1&body=1&mch_id=1&nonce_str=1&notify_url=1&out_trade_no=1&spbill_create_ip=1&total_fee=1&trade_type=1' >>>[(k, params[k]) for k in sorted(params)] [('appid', 1), ('body', 1), ('mch_id', 1), ('nonce_str', 1), ('notify_url', 1), ('out_trade_no', 1), ('spbill_create_ip', 1), ('total_fee', 1), ('trade_type', 1)]

而後就是quote_plus了,使用了一下發現這個方法是將一些特殊的字符串轉換爲固定的一些符號字母數字組合,例如:微信支付

>>>parse.quote_plus('a&b/c') 'a%26b%2Fc'

其中的&和/都分別變爲了%26b和%2F,還有更多的一些符號變化就先不去一一嘗試了。url

相關文章
相關標籤/搜索