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笔记(叁)继续学习
Oct 24 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
pandas分区间,算频率的实例
Jul 04 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
详解python metaclass(元类)
Aug 13 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中__call__内置函数用法实例
2015/06/04 Python
Python简单生成随机数的方法示例
2018/03/31 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
python打开音乐文件的实例方法
2020/07/21 Python
python3实现飞机大战
2020/11/29 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
英文导游欢迎词
2014/01/11 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
环保项目建议书
2014/08/26 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
企业年检委托书范本
2014/10/14 职场文书
地方课程教学计划
2015/01/19 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android