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数据中有中文的读写问题


分享到:


相關文章: