Python JSON格式数据的提取和保存的实现


Posted in Python onMarch 22, 2019

环境:python-3.6.5

JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
Python中自带了json模块,直接import json即可使用

官方文档:https://docs.python.org/3/library/json.html

Json在线解析网站:https://www.json.cn/#

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。

对象:对象在js中表示为{ }括起来的内容,数据结构为 { key:value, key:value, ... }的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象这几种。
数组:数组在js中是中括号[ ]括起来的内容,数据结构为 ["Python", "javascript", "C++", ...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

json模块使用

json模块提供了四个功能:dumps,dump,load,loads,用于字符串和python数据类型进行转换。

json.loads()

json.loads()方法将JSON文本字符串转换为Python对象,从JSON到Python的类型转化对照如下:

JSON Python
object dict
array list
string unicode
number(int) int
number(real) float
true True
false False
null None

示例:

import json

# JSON文本字符串
str_list = '["a","b","c","d"]'
str_dict = '{"name":"小白","age":1000}'

# json.loads将文本字符串转化为JSON对象,在Python里就是Python对象了
data_list = json.loads(str_list)
data_dict = json.loads(str_dict)

print(type(data_list))
print(type(data_dict))
print(data_list)
print(data_dict)

运行结果:

<class 'list'>
<class 'dict'>
['a', 'b', 'c', 'd']
{'name': '小白', 'age': 1000}

说明:

JSON文本字符串中,数据应该用双引号括起来,不然会报错误,比如上面str_list和str_dict中的值都应该用双引号,数字就不用。

json.dumps

json.dumps()方法实现python类型转化为json字符串,返回一个str对象把一个Python对象编码转换成Json字符串。从Python到JSON的类型转化对照如下:

Python JSON
dict object
list,tuple array
str string
int, float, int- & float-derived Enums number
True true
False false
None null

示例:

import json

data_list = [1,2,3,4]
data_dict = {'name':'小黑','age':1000}

print(json.dumps(data_list))
print(json.dumps(data_dict))

运行结果:

[1, 2, 3, 4]
{"name": "\u5c0f\u9ed1", "age": 1000}

说明:dumps方法可以将Python数据类型转化为JSON文本字符串,但是可以看到当有中文的时候,转换后中文字符都变成Unicode字符,要输出中文需要设置dumps方法的参数ensure_ascii=True设置为ensure_ascii=False。如下:

print(json.dumps(data_dict,ensure_ascii=False))
# 运行结果:{"name": "小黑", "age": 1000}

此外,如果需要将数据保存为文本的时候,还需要指定文件的编码格式为utf-8,比如将上面的data_dict数据(里面有中文字符)保存为data.json文件,代码如下:

with open('data.json','w',encoding='utf-8') as f:
  f.write(json.dumps(data_dict,ensure_ascii=False))

否则打开保存的文件,会有乱码。

如果要处理的是文件而不是字符串,可以使用 json.dump()和json.load()来编码和解码JSON数据。比如:

# 写入数据到文件
data_list = [{'name':'小白'},{'name':'小黑'}]
with open('data2.json','w',encoding='utf-8') as f:
  json.dump(data_list,f,ensure_ascii=False)
# 从文件读取数据
with open('data2.json','r',encoding='utf-8') as f:
data = json.load(f)
print(data)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
Python语言描述连续子数组的最大和
Jan 04 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
python环境下安装opencv库的方法
Mar 05 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
Python3.4解释器用法简单示例
Mar 22 #Python
Python常见数字运算操作实例小结
Mar 22 #Python
详解python校验SQL脚本命名规则
Mar 22 #Python
pymongo中group by的操作方法教程
Mar 22 #Python
Python常用特殊方法实例总结
Mar 22 #Python
pymongo中聚合查询的使用方法
Mar 22 #Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 #Python
You might like
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
js判断输入是否为数字的具体实例
2013/08/03 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
浅谈React高阶组件
2018/03/28 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
python3实现读取chrome浏览器cookie
2016/06/19 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python增加图像对比度的方法
2019/07/12 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书