溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何將unicode和str互相轉(zhuǎn)化

發(fā)布時間:2020-07-28 10:04:29 來源:億速云 閱讀:160 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要給大家分享的是python如何將unicode和str互相轉(zhuǎn)化,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

問題一:

將u'\u810f\u4e71'轉(zhuǎn)換為'\u810f\u4e71'

方法:

s_unicode = u'\u810f\u4e71'
s_str = s_unicode.encode('unicode-escape').decode('string_escape')

問題二:

將'\u810f\u4e71'轉(zhuǎn)換為u'\u810f\u4e71'

方法:

s_str = '\u810f\u4e71's_unicode = s_str.decode('unicode-escape')

補充知識:Python最簡單的解決列表中只打印UNICODE而不是中文字符的方法

答案就是用json模塊:

例如:

import json
 
data=[{u'\u663e\u793a': [u'python', u'\u8bd5\u9a8c'], u'\u6570\u91cf': 22, u'\u8bed\u8a00': u'python'}]
data_c = u'\u663e\u793a'
print data
print data_c
 
res_data=json.dumps(data,ensure_ascii=False,encoding="gb2312")
print res_data

在沒有進(jìn)行格式轉(zhuǎn)換時,輸出為:

>>>[{u'\u663e\u793a': [u'python', u'\u8bd5\u9a8c'], u'\u6570\u91cf': 22, u'\u8bed\u8a00': u'python'}]

>>>顯示

可見非列表中的數(shù)據(jù)在輸出時是會轉(zhuǎn)換成中文顯示出來的,但列表中的unicode數(shù)據(jù)不會。

轉(zhuǎn)換后,輸出為:

>>>[{"顯示": ["python", "試驗"], "數(shù)量": 22, "語言": "python"}]

如果后面這種輸出是想要的格式,那么就利用現(xiàn)成的json模塊將原列表格式轉(zhuǎn)換為json字符串輸出,并設(shè)置好編碼格式,就可以了。

當(dāng)還需要再用這部分用來顯示的數(shù)據(jù),譬如以后什么時候又想直接用python來讀取log文件中這種看起來比較方便的帶中文的偽列表,那么再用json.loads轉(zhuǎn)換回去即可。

看完這篇關(guān)于python如何將unicode和str互相轉(zhuǎn)化的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI