python3解決json數據中有中文的讀寫問題

在上一家公司時,主要做文本挖掘,而且當時數據庫是MongoDB數據庫,都是中文的bson這種類json數據,當時也踩了不少坑,不過總算做好了,在這梳理了一下那些曾經入的坑。

python3解決json數據中有中文的讀寫問題

python3 默認的是UTF-8格式

向txt文件寫中文的時候也要注意在打開的時候加上encoding='utf-8',不然也是亂碼,如下:

with open('result.txt', 'a+', encoding='utf-8') as f:

python3解決json數據中有中文的讀寫問題

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網絡傳輸速率)。

注:json 必須是雙引號"",才可以loads 成python對象,單引號會報錯,而python中單引號和雙引號都可以表示一個字符串,沒有嚴格限制,不過在一個文本中最好單獨使用一種

python3解決json數據中有中文的讀寫問題

JSON在python中分別由list和dict組成。

Json模塊提供了四個方法:dumps、dump、loads、load

dumps 和 loads

打開json文件是要注意,要加上encoding='utf-8',不然會顯示成亂碼:

with open('casedate.json', 'w', encoding='utf-8') as f:

loads:將字符串轉換成python對象,如果傳入的json字符串編碼不是UTF-8,需要指定編碼格式,如果是GB2312的話,那麼久應該這樣寫;

python3解決json數據中有中文的讀寫問題

dumps:將python對象轉換成json字符串

python3解決json數據中有中文的讀寫問題

Ensure_ascii,默認True, 如果dict內含有non-ASCII的中文字符,則會類似\\uXXXX的顯示數據,設置成False後,就能正常顯示

encoding,默認是UTF-8,用來設置生成的json數據的編碼方式

dump和 load
處理的是文件而不是字符串

dump: 將python對象數據寫入json文件中

python3解決json數據中有中文的讀寫問題

load把json文件打開,並把字符串變成python數據類型

python3解決json數據中有中文的讀寫問題


分享到:


相關文章: