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调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
python读写配置文件操作示例
Jul 03 Python
Python爬取知乎图片代码实现解析
Sep 17 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python 实现压缩和解压缩的示例
Sep 22 Python
Python读取和写入Excel数据
Apr 20 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中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
python正则实现计算器功能
2017/12/14 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python自动12306抢票软件实现代码
2018/02/24 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Python实现时间序列可视化的方法
2019/08/06 Python
关于Python-faker的函数效果一览
2019/11/28 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
捐款倡议书
2014/04/14 职场文书
小学生操行评语
2014/04/22 职场文书
生态养殖创业计划书
2014/05/06 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
保留意见审计报告
2015/06/05 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL