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自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
用python处理图片实现图像中的像素访问
May 04 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
python3去掉string中的标点符号方法
Jan 22 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
Python实现FLV视频拼接功能
2020/01/21 Python
Django xadmin安装及使用详解
2020/10/26 Python
Python爬虫开发与项目实战
2020/12/16 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
中英文自我评价常用句型
2013/12/19 职场文书
家长给孩子的评语
2014/01/30 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python