python常用函数中文_【python】python常用函数
urlencode與urldecode
當url中包含中文或者參數包含中文,需要對中文或者特殊字符(/、&)做編碼轉換。
urlencode的本質:把字符串轉為gbk編碼,再把\x替換成%。如果終端是utf8編碼的,需要把結果再轉成utf8輸出,否則會亂碼。
urlencode
urllib庫里面的urlencode函數,可以把key-value健值對的key、value都進行urlencode并轉換成a=1&b=2的字符串。
#key-value健值對
>>> from urllib import urlencode
>>> data={'a':'a1','b':'中文'}
>>> print urlencode(data)
a=a1&b=%E4%B8%AD%E6%96%87
>>> data={'a':'a1','b測試':'中文'}
>>> print urlencode(data)
a=a1&b%E6%B5%8B%E8%AF%95=%E4%B8%AD%E6%96%87
urllib庫里面的quote函數,可以針對單個字符串進行urlencode轉換。
#string
>>> from urllib import quote
>>> data="測試"
>>> print quote(data)
%E6%B5%8B%E8%AF%95
urldecode
urllib只提供了unquote()函數。
>>> from urllib import unquote
>>> unquote("%E6%B5%8B%E8%AF%95")
'\xe6\xb5\x8b\xe8\xaf\x95'
>>> print unquote("%E6%B5%8B%E8%AF%95")
測試
>>>
json處理
兩個函數:
函數
描述
json.dumps
將python對象編碼成JSON字符串(對象->字符串)
json.loads
將已經編碼的json字符串解碼為Python對象(字符串->對象)
json.dumps
語法:json.dumps(data, sort_keys=True, indent=4,separators=(self.item_separator, self.key_separator))
>>> import json
>>> data={"a":"a1","b":"b1"}
>>> jsonstr=json.dumps(data)
>>> print jsonstr
{"a": "a1", "b": "b1"}
#輸出格式化
>>> print json.dumps(data, sort_keys=True, indent=4,separators=(",",":"))
{
"a":"a1",
"b":"b1"
}
>>>
python原始類型向json類型的轉換對照表:
Python
JSON
dict
object
list,tuple
array
str,unicode
string
int,long,float
number
True
true
False
false
None
null
json.loads
json.loads——返回Python字段的數據類型
>>> import json
>>> jsonstr='{"a":"a1","b":"b1"}'
>>> print json.loads(jsonstr)
{u'a': u'a1', u'b': u'b1'}
>>> jsonstr='{"a":"a1","b":null,"c":false,"d":{"aa":"aa1","bb":"bb1"}}'
>>> print json.loads(jsonstr)
{u'a': u'a1', u'c': False, u'b': None, u'd': {u'aa': u'aa1', u'bb': u'bb1'}}
>>> jsonstr='[{"a":"a1"},{"b":"b2"}]'
>>> print json.loads(jsonstr)
[{u'a': u'a1'}, {u'b': u'b2'}]
json類型轉換為python類型的對照表
JSON
Python
object
dict
array
list
string
unicode
number(int)
int,long
number(real)
float
true
True
false
False
null
None
結論:print只能輸出python認識的數據類型,python.dumps才可以格式化輸出。
計算字符串md5
方法一:使用md5包
import md5
def calMd5(signdata,signkey,joiner=""):
signdata=signdata+joiner+""+signkey
m=md5.new(signdata)
sign = m.hexdigest()
return sign
方法二:使用hashlib包
import hashlib
def calHashMd5(signdata,signkey,joiner=""):
signdata=signdata+joiner+""+signkey
m=hashlib.md5(signdata)
sign = m.hexdigest()
return sign
計算hmacsha1
hmac:密鑰相關的哈希運算消息認證碼,hmac運算利用哈希算法(可以是MD5或者SHA-1),以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出。
作用:
(1)驗證接受的授權數據和認證數據;
(2)確認接受到的命令請求是已經授權的請求且傳送過程沒有被篡改
import hmac
import base64
def hmacSha1WithBase64(signdata,signkey):
sign = hmac.new(signkey, signdata,sha1).digest()
sign = base64.b64encode(sign)
return sign
字符串拼接
from collections import OrderedDict
def composeStr(data,joiner,withkey=True,key_value_joiner="="):
data = OrderedDict(sorted(data.items(), key=lambda t:t[0]))
if withkey :
signdata = joiner.join([key_value_joiner.join((str(key), str(elem))) for key, elem in data.iteritems()])
else :
signdata= joiner.join([elem for key, elem in data.items()])
return signdata
總結
以上是生活随笔為你收集整理的python常用函数中文_【python】python常用函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一年意外险多少钱啊?
- 下一篇: 我在地下城与勇士寂静城区域刷了很久为什么