欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年04月01日 15:12:11   作者:極客堂  
這篇文章主要介紹了python json.dumps中文亂碼問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

注:下面的代碼再python 2.7版本下測試通過

# -*- coding: utf-8 -*-
odata = {'a' : '你好'}
print odata

結(jié)果:

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

print json.dumps(odata)

結(jié)果:

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

print json.dumps(odata,ensure_ascii=False)

結(jié)果:

{"a": "浣犲ソ"}

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

結(jié)果:

{"a": "你好"}

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

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

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

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

print json.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__ import unicode_literals
print json.dumps(odata,ensure_ascii=False)

結(jié)果:

{"a": "你好"}

在寫入文件的時候出現(xiàn)了Python2.7的UnicodeEncodeError: ‘a(chǎn)scii' codec can't encode異常錯誤

大神的解決方法:

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

from __future__ import unicode_literals
import codecs
fp = codecs.open('output.txt', 'a+', 'utf-8')
fp.write(json.dumps(m,ensure_ascii=False))
fp.close()

到此這篇關(guān)于python json.dumps中文亂碼問題解決的文章就介紹到這了,更多相關(guān)python json.dumps中文亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python分析作業(yè)提交情況

    python分析作業(yè)提交情況

    這篇文章主要為大家詳細介紹了python分析作業(yè)提交情況,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python基于http下載視頻或音頻

    python基于http下載視頻或音頻

    這篇文章主要為大家詳細介紹了python基于http下載視頻或音頻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python如何將多個PDF進行合并

    python如何將多個PDF進行合并

    這篇文章主要為大家詳細介紹了python如何將多個PDF進行合并,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python冒泡排序簡單實現(xiàn)方法

    python冒泡排序簡單實現(xiàn)方法

    這篇文章主要介紹了python冒泡排序簡單實現(xiàn)方法,實例分析了Python冒泡排序的簡單實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式

    keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式

    這篇文章主要介紹了keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python?selenium?八種定位元素的方式

    Python?selenium?八種定位元素的方式

    這篇文章主要介紹了Python?selenium八種定位元素的方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法示例

    Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法示例

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法,結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中多繼承、多態(tài)的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-04-04
  • 基于Python實現(xiàn)股票數(shù)據(jù)分析的可視化

    基于Python實現(xiàn)股票數(shù)據(jù)分析的可視化

    在購買股票的時候,可以使用歷史數(shù)據(jù)來對當(dāng)前的股票的走勢進行預(yù)測,這就需要對股票的數(shù)據(jù)進行獲取并且進行一定的分析。本文將介紹如何通過Python實現(xiàn)股票數(shù)據(jù)分析的可視化,需要的可以參考一下
    2021-12-12
  • Python機器學(xué)習(xí)從ResNet到DenseNet示例詳解

    Python機器學(xué)習(xí)從ResNet到DenseNet示例詳解

    ResNet極大地改變了如何參數(shù)化深層網(wǎng)絡(luò)中函數(shù)的觀點。稠密連接網(wǎng)絡(luò)(DenseNet)在某種程度上是ResNet的邏輯擴展。讓我們先從數(shù)學(xué)上了解下
    2021-10-10
  • Python獲取當(dāng)前時間日期的方法總結(jié)

    Python獲取當(dāng)前時間日期的方法總結(jié)

    在Python編程中,獲取當(dāng)前的日期和時間是一個常見的需求,它在許多應(yīng)用中都有重要作用,本文為大家詳細整理了一些Python中的常用方法,希望對大家有所幫助
    2024-01-01

最新評論