91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

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

      千鋒教育

      掃一掃進入千鋒手機站

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

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

      當前位置:首頁  >  技術(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序列化時對中文默認使用的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)入到當前版本

      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)機構(gòu):千鋒教育。

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(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