摘要:我是接口調(diào)用方,今天在聯(lián)調(diào)的時(shí)候,接口方的同學(xué)問(wèn)我傳過(guò)來(lái)的是神馬玩意,怎么每個(gè)前還帶個(gè)的。一通發(fā)現(xiàn)是自帶的庫(kù)會(huì)把文件成對(duì)象。如果想要變成對(duì)象的話(huà),就要自己去。使用里的來(lái)代替官方自帶的可能更好。
我是接口調(diào)用方,今天在聯(lián)調(diào)的時(shí)候,接口方的同學(xué)問(wèn)我傳過(guò)來(lái)的json是神馬玩意,怎么每個(gè)item前還帶個(gè)u的。
我看了一眼,我靠,還真是帶個(gè)u的,自己調(diào)試的時(shí)候楞是沒(méi)發(fā)現(xiàn)。也怪自己以前沒(méi)怎么遇到過(guò)Python的編碼坑,這次重新用起Python2來(lái),一不小心就踩進(jìn)坑了。
一通debug發(fā)現(xiàn)是Python自帶的Json庫(kù)會(huì)把json文件load成Unicode對(duì)象。如果想要變成str對(duì)象的話(huà),就要自己去encode。
祭出so大法...#請(qǐng)叫我so搬運(yùn)工
def byteify(input): if isinstance(input, dict): return {byteify(key):byteify(value) for key,value in input.iteritems()} elif isinstance(input, list): return [byteify(element) for element in input] elif isinstance(input, unicode): return input.encode("utf-8") else: return input
這個(gè)函數(shù)遞歸的把list和dict里的Unicode對(duì)象encode成str。
當(dāng)然,我不覺(jué)得這是the right way。使用yaml里的json來(lái)代替官方自帶的json可能更好。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/37540.html
摘要:值得注意的是,有的編碼方案不一定能表示某些信息,這時(shí)編碼就會(huì)失敗,比如就不能用來(lái)表示中文。數(shù)組的每一項(xiàng)是一個(gè)字節(jié),用來(lái)表示。所以對(duì)于字符串來(lái)說(shuō),其長(zhǎng)度等于編碼后字節(jié)的長(zhǎng)度。所以,讓來(lái)編碼解碼中文,就超出了其能力范圍。 在人機(jī)交互之字符編碼 一文中對(duì)字符編碼進(jìn)行了詳細(xì)的討論,并通過(guò)一些簡(jiǎn)單的小程序驗(yàn)證了我們對(duì)于字符編碼的認(rèn)識(shí)。但僅了解這篇文章的內(nèi)容,并不能幫我們?cè)谌粘>幊讨卸氵^(guò)一些字符編...
摘要:常見(jiàn)的字符編碼有編碼,編碼,編碼等。碼只規(guī)定了個(gè)字符的編碼,這在美國(guó)是夠用的。小結(jié)是一種針對(duì)的可變長(zhǎng)度字符編碼,它是的實(shí)現(xiàn)方式之一。 字符編碼是計(jì)算機(jī)編程中不可回避的問(wèn)題,不管你用 Python2 還是 Python3,亦或是 C++, Java 等,我都覺(jué)得非常有必要厘清計(jì)算機(jī)中的字符編碼概念。本文主要分以下幾個(gè)部分介紹: 基本概念 常見(jiàn)字符編碼簡(jiǎn)介 Python 的默認(rèn)編碼 Py...
摘要:如果傳一個(gè)中文,下和下編碼分別是和,可以自己用打印看看文件中寫(xiě)死,本來(lái)理解是跟這個(gè)文件本身編碼有關(guān),但文件編碼同樣是的情況下,下打印了的超集,下仍然是。 對(duì)編碼問(wèn)題一直一知半解,之前也是得過(guò)且過(guò),正好有個(gè)同事要我?guī)兔?xiě)個(gè)腳本,涉及這方面的問(wèn)題,借這個(gè)契機(jī)研究了一下. 先貼幾篇比較好的: 1.阮老師的上古文章(07年…),雖然古老但對(duì)理解幫助很大,從最基礎(chǔ)講起,邏輯清晰易理解. (ps:...
摘要:根據(jù)有效范圍作用域分為全局變量和局部變量。類(lèi)型以開(kāi)頭標(biāo)識(shí)類(lèi)型以開(kāi)頭標(biāo)識(shí)類(lèi)型以進(jìn)制的字節(jié)碼表示,實(shí)際上是一個(gè)字節(jié)串,回應(yīng)了它的另一個(gè)名字。 < 返回索引頁(yè) 基本語(yǔ)法 Hello World 代碼注釋 關(guān)鍵字 數(shù)據(jù)類(lèi)型 變量、常量 變量 變量賦值 變量命名 變量的作用域 常量 字符串與編碼 字符轉(zhuǎn)義 字符編碼 字符串操作 運(yùn)算符與表達(dá)式 運(yùn)算符 表達(dá)式 ...
摘要:的字符串有兩種和,的字符串也有兩種和。不同字符的不同表現(xiàn),讓的和顯得撲朔迷離。在中,嚴(yán)格區(qū)分了和,不同類(lèi)型之間操作就會(huì)拋出的異常。和之間的轉(zhuǎn)換一圖勝千言和的相互轉(zhuǎn)換指的是具體的編碼規(guī)則的名稱(chēng),對(duì)于中文來(lái)說(shuō),它可以是這些值等等。 Python2的字符串有兩種:str 和 unicode,Python3的字符串也有兩種:str 和 bytes。Python2 的 str 相當(dāng)于 Pytho...
閱讀 4222·2023-04-26 02:13
閱讀 2323·2021-11-08 13:13
閱讀 2823·2021-10-11 10:59
閱讀 1805·2021-09-03 00:23
閱讀 1368·2019-08-30 15:53
閱讀 2367·2019-08-28 18:22
閱讀 3108·2019-08-26 10:45
閱讀 800·2019-08-23 17:58