Python 玩转数据 12 - 数据读写 Data I/O: Pandas 读写 JSON File Format
引言
本文主要介绍 Pandas 对 JSON 格式数据的读写,更多 Python 进阶系列文章,请参考 Python 进阶学习 玩转数据系列
内容提要:
JSON File Format
剖析 JSON Format
JSON 值的类型
JSON Data I/O Modules in Python
Pandas: read_json() and to_json()
JSON File Format
- JSON: JavaScript Object Notation
● 一个轻量级的数据交换格式
● 人类易读写
● 方便计算机解析和生成
● 文本格式跟语言完全无关
● 有其它许多语言类似的规范 - JSON 有两种结构:
● Object: 键值对
也可以是 a record, struct, dictionary, hash table, keyed list, or associative array
● Array: 有序数组
也可以是 vector, list, or sequence - 文件扩展名
● filename.json
剖析 JSON Format
Object
• 一个无序的键值对集合 name:value
• 开始于 {
, 结束于 }
• 每个键后面跟着冒号 :
• 每对键值对用逗号分隔 ,
Array
• 一个有序的集合:
• 开始于 [
, 结束于 ]
• 集合中的值用逗号分割 ,
举例:
JSON: Values, Numbers, and Strings
JSON 值的类型:
数字 number
字符串 String
JSON Data I/O Modules in Python
Module | Installation / Load / Methods | URL / Comment |
---|---|---|
json | import json | https://docs.python.org/3/library/json.html |
simplejson | pip install simplejson | https://pypi.org/project/simplejson/ |
metamagic.json | pip install metamagic.json | https://pypi.org/project/metamagic.json/ |
json-tricks | pip install json-tricks | http://json-tricks.readthedocs.io/en/latest/ |
pandas | import pandas as pd pd.read_json() df.to_json() | https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html |
Pandas: read_json() and to_json()
read_json()
通过参数 orient 的不同值来支持读取不同格式的 JSON 数据
df = pd.read_json (data, orient = ‘columns’ )
to_json()
通过参数 orient=attribute 来控制将数据写入到不同格式的 JSON 文件。
df.to_json (filename, orient = ‘columns’ )
参数 orient
orient = | Series | DataFrame | Format |
---|---|---|---|
split | dict like {index : [index], columns : [columns], data : [values]} | ||
records | list like [{column : value}, … , {column : value}] | ||
index | default | dict like {index : {column : value}} | |
columns | default | dict like {column : { index : value }} | |
values | NO | just the values array |
orient=‘records’: list like [{column : value}, … , {column : value}]
import pandas as pddata = '''[{"first": "Ann", "last": "Hunt", "age": 13},{"first": "John", "last": "Smith", "age": 10},{"first": "Tim", "last": "Geist", "age": 20}]
'''
df = pd.read_json(data, orient='records')
print("df:\n{}".format(df))
df.to_json("records.json", orient='records')
输出:
df:first last age
0 Ann Hunt 13
1 John Smith 10
2 Tim Geist 20
生成的 records.json 内容
orient=‘split’: dict like {index : [index], columns : [cols], data : [vals]}
import pandas as pddata = '''{"columns": ["first", "last", "age"],"data": [["Ann", "Hunt", 13], ["John", "Smith", 10], ["Tim", "Geist", 20]],"index": [0, 1, 2]}
'''df = pd.read_json(data, orient='split')
print("df:\n{}".format(df))
df.to_json("split.json", orient='split')
输出:
df:first last age
0 Ann Hunt 13
1 John Smith 10
2 Tim Geist 20
生成的 split.json 内容:
orient=‘index’: dict like {index : {column : value}}
import pandas as pddata = '''{"0":{"first": "Ann", "last": "Hunt", "age": 13},"1":{"first": "John", "last": "Smith", "age": 10},"2":{"first": "Tim", "last": "Geist", "age": 20},}
'''df = pd.read_json(data, orient='index')
print("df:\n{}".format(df))
df.to_json("index.json", orient='index')
输出:
df:first last age
0 Ann Hunt 13
1 John Smith 10
2 Tim Geist 20
生成的 index.json 内容:
orient=‘columns’: dict like {column : {index : value}}
import pandas as pddata = '''{"first":{"0": "Ann", "1": "John", "2": "Tim"},"last":{"0": "Hunt", "1": "Smith", "2": "Geist"},"age":{"0": 13, "1": 10, "2": 20},}
'''df = pd.read_json(data, orient='columns')
print("df:\n{}".format(df))
df.to_json("columns.json", orient='columns')
输出:
df:first last age
0 Ann Hunt 13
1 John Smith 10
2 Tim Geist 20
生成的 columns.json 内容:
orient=‘values’: just the values array
import pandas as pddata = '''[["Ann", "Hunt", 13],["John", "Smith", 10],["Tim", "Geist", 20]]
'''df = pd.read_json( data, orient = 'values' )
df.columns = ["first", "last", "age"]print("df:\n{}".format(df))
df.to_json("values.json", orient='values')
输出:
df:first last age
0 Ann Hunt 13
1 John Smith 10
2 Tim Geist 20
生成的 values.json 内容:
Python 玩转数据 12 - 数据读写 Data I/O: Pandas 读写 JSON File Format相关推荐
- python txt文件读写 pandas_Python数据分析之Pandas读写外部数据文件!
阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写入数据 3 excel文件 3.1 读取数据 3.2 写入数据 4 mysql数据库 5 mongodb数据库 1 引言 ...
- python玩转大数据_【小旭学长】大数据博士教你用python玩转时空大数据
好消息!好消息!手把手教你用python玩大数据 小旭学长的python大数据教程完结撒花,共26P录制完毕,总时长4小时.每10分钟的视频的录制加剪辑时间加起来都要两小时以上,讲得很细但是节奏也很快 ...
- 数据分析从零开始实战,Pandas读写Excel/XML数据
点击查看第一篇文章: 数据分析从零开始实战,Pandas读取HTML页面+数据处理解析_ 数据分析 从零开始到实战,Pandas读写CSV数据_ 数据分析 从零开始到实战,Pandas读写CSV数据 ...
- Tensorflow2.* 加载和预处理数据之用 tf.data 加载磁盘图片数据(4)
Tensorflow2.* 机器学习基础知识篇: 对服装图像进行分类 使用Tensorflow Hub对未处理的电影评论数据集IMDB进行分类 Keras 机器学习基础知识之对预处理的电影评论文本分类 ...
- Python数据分析之Pandas读写外部数据文件
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写入数据 ...
- python 按列读取数据并写入txt_Python数据分析之Pandas读写外部数据文件!
阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写入数据 3 excel文件 3.1 读取数据 3.2 写入数据 4 mysql数据库 5 mongodb数据库 1 引言 ...
- Python玩转大数据-张敏-专题视频课程
Python玩转大数据-221人已学习 课程介绍 该课程采用时下后的编程语言Python讲解,囊括了当前火的大数据技术Spark/Hadoop/Hive知识,学习环境是基于Docker ...
- python与excel做数据可视化-我在工作中是怎么玩数据的—数据可视化系列教程—Python篇...
一. 为什么是Python? Python现在已经成为数据科学的语言!基于 Python 代码实现批量化,流程化的数据探索与汇报!按照地产大佬***的话讲--就是重复性的工作直接用Python搞定就可 ...
- python好学吗mooc中文网-2020年大学mooc用Python玩转数据作业答案
2020年大学mooc用Python玩转数据作业答案 更多相关问题 一台电脑先涨价着一%,后降价2一%,这台电脑一现价同原价相比是()A.一样的B.降低了C.提高了直接写出9数 3÷地下%=6×3下% ...
- python好学吗mooc中文网-用Python玩转数据
spContent=欢迎来到<用Python玩转数据>,这是第10次开课,大壮老师会尽量用非计算机专业(需要有一些编程基础,最好学过一门程序设计语言,但不一定是Python)小伙伴们能听懂 ...
最新文章
- java bag集合_集合基于数组的实现:ArrayBag.java
- numpy使用[]语法索引二维numpy数组中指定指定行之后所有数据行的数值内容(accessing rows in numpy array after specifc row)
- python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...
- DataSet导出Excel,比以往的方法导出的Excel外观更加好看
- Java基础笔记 – 增强的for循环For each循环 自动装箱拆箱 可变参数
- 第五十四天 how can I 坚持
- 如何取消高亮显示重复项_如何将重复数据突出显示?
- Tensorflow学习—— 预创建的 Estimator
- (原创)面向对象的系统对接接口编写。第4篇
- 如何使用windows自带的远程协助
- open cv+C++错误及经验总结(十)
- 服务器设置系统盘分页,服务器设置系统盘分页
- [网络安全自学篇] 九十四.《Windows黑客编程技术详解》之提权技术(令牌权限提升和Bypass UAC)
- php 转gbk,php 中文怎么转gbk
- Lightroom Classic CC 2019 for Mac永久破解激活方法(含lr cc 2019破解补丁)
- 搬寝室 ----- 动态规划
- Dtop环球嘉年华全球Web3.0分布式私域电商生态发展峰会圆满举办
- 在IE8中使用建行企业网银的解决方法
- 《楚门的世界》观后感
- 行测测评(二)——图形找规律技巧
热门文章
- 2022,一名85后程序猿之感慨,加油
- 架设自己的邮件服务器
- 求两条轨迹间的hausdorff距离_【每周三题】高二【136】分子间作用力和分子势能...
- 小弟需要一个能显示播放音频的各频率音量大小(不知道叫什么东东)的控件~!...
- UNITY性能优化✨MeshBaker在Unity中的使用教程
- 《雍正皇帝》文化专有词翻译策略的研究现状(Baker)
- BootStrap快速入门
- bugk学习1:宽带信息泄露misc
- 红军协同对抗蓝军问题
- 计算机图画大赛作品六年级,小学学生电脑绘画比赛活动方案-20210407071921.docx-原创力文档...