国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁  >  技術(shù)干貨  > 解決python中json.dumps中文亂碼問題

            解決python中json.dumps中文亂碼問題

            來源:千鋒教育
            發(fā)布人:xqq
            時間: 2023-11-09 05:28:06 1699478886

            pythonjson.dumps中文亂碼問題解決

            json中文亂碼

            json.dumps(var,ensure_ascii=False)并不能解決中文亂碼的問題

            json.dumps在不同版本的Python下會有不同的表現(xiàn),注意下面提到的中文亂碼問題在Python3版本中不存在。

            注:下面的代碼再python2.7版本下測試通過

            #-*-coding:utf-8-*-

            odata={'a':'你好'}

            printodata

            結(jié)果:

            {'a':'\xe4\xbd\xa0\xe5\xa5\xbd'}

            printjson.dumps(odata)

            結(jié)果:

            {"a":"\u4f60\u597d"}

            printjson.dumps(odata,ensure_ascii=False)

            結(jié)果:

            {"a":"浣犲ソ"}

            printjson.dumps(odata,ensure_ascii=False).decode('utf8').encode('gb2312')

            結(jié)果:

            {"a":"你好"}

            要解決中文編碼,需要知道python2.7對字符串是怎么處理的:

            由于#--coding:utf-8--的作用,文件內(nèi)容以utf-8編碼,所以printodata

            輸出的是utf-8編碼后的結(jié)果{‘a(chǎn)’:‘\xe4\xbd\xa0\xe5\xa5\xbd’}

            json.dumps序列化時對中文默認(rèn)使用的ascii編碼,printjson.dumps(odata)輸出unicode編碼的結(jié)果

            printjson.dumps(odata,ensure_ascii=False)不使用的ascii編碼,以gbk編碼

            ‘你好’用utf8編碼是%E4%BD%A0%E5%A5%BD用gbk解碼是浣犲ソ

            字符串在Python內(nèi)部的表示是unicode編碼。

            因此,在做編碼轉(zhuǎn)換時,通常需要以unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

            decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼

            decode(’utf-8’)表示將utf-8編碼的字符串轉(zhuǎn)換成unicode編碼。

            encode的作用是將unicode編碼轉(zhuǎn)換成其他編碼的字符串

            encode(‘gb2312’),表示將unicode編碼的字符串轉(zhuǎn)換成gb2312編碼。

            python3中沒有這種問題,所以最簡單的方法是引入__future__模塊,把新版本的特性導(dǎo)入到當(dāng)前版本

            from__future__importunicode_literals

            printjson.dumps(odata,ensure_ascii=False)

            結(jié)果

            {"a":"你好"}

            在寫入文件的時候出現(xiàn)了Python2.7的UnicodeEncodeError:‘a(chǎn)scii’codeccan’tencode異常錯誤

            大神的解決方法:

            不使用open打開文件,而使用codecs:

            from__future__importunicode_literals

            importcodecs

            fp=codecs.open('output.txt','a+','utf-8')

            fp.write(json.dumps(m,ensure_ascii=False))

            fp.close()

            以上內(nèi)容為大家介紹了解決python中json.dumps中文亂碼問題,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT