Python快速上手JSON指南
什么是JSON?
网上对JSON有很多教程,有各种各样的解释。一言以蔽之,JSON本质上是一种语法,这种语法的作用是把数据以字符串的形式存储、传递,多用于Web编程。
JSON的典型示例
'{
"employees": [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
]
}'
从Python的角度理解JSON,JSON的主要构成要素只有两个:字典,字符串。大家可以把JSON理解为字符串化的字典。
以上面的典型示例为例子,"employees"为key, 后面的由3个字典组成的列表就为Value. 这就构成了一份JSON数据.
利用Packge json解析、生成JSON
利用json的loads和dumps两个函数,基本可以满足需求。我们假设上述JSON典型示例字符串为Json_str,话不多说,直接上代码:
>>> import json
>>> Json_afterdecode = json.loads(Json_str)
>>> print(type(Json_afterdecode))
<class 'dict'>
>>> Json_afterdecode
{'employees': [{'lastName': 'Gates', 'firstName': 'Bill'}, {'lastName': 'Bush', 'firstName': 'George'}, {'lastName': 'Carter', 'firstName': 'Thomas'}]}
>>> Json_afterdecode["employees"][0]["lastName"]
'Gates'
>>> Json_afterencode = json.dumps(Json_afterdecode)
>>> print(type(Json_afterencode))
<class 'str'>
>>> Json_afterencode
'{"employees": [{"lastName": "Gates", "firstName": "Bill"}, {"lastName": "Bush", "firstName": "George"}, {"lastName": "Carter", "firstName": "Thomas"}]}'
优雅的输出
很多时候我们需要把JSON放到文件里,变成JSON文件(比如需要用JSON文件存储一些配置信息时),但是一行字符串丑的不行,怎么办?
json.dumps(<你要转换为JSON的data>, sort_keys=True, indent=4)),可以实现排序和缩进
>>> Json_afterencode_elegant = json.dumps(Json_afterdecode, sort_keys=True, indent=4)
>>> print(Json_afterencode_elegant)
{
"employees": [
{
"firstName": "Bill",
"lastName": "Gates"
},
{
"firstName": "George",
"lastName": "Bush"
},
{
"firstName": "Thomas",
"lastName": "Carter"
}
]
}
瞧,这样不仅看起来美观,也便于其他人往Json里填充数据。
当我们需要从JSON文件里读取信息时,直接用下面的路径就能直接得到JSON数据了。
>>> Json_afterdecode = json.loads(open("JSON文件路径","r").read())
参考链接:
RUNOOB的JSON教程: http://www.runoob.com/json/json-tutorial.html
Python快速上手JSON指南的更多相关文章
- python快速上手教程
python版本 python目前的版本分为2.7和3.5,两种版本的代码目前无法兼容,查看python版本号: python --version 基本数据类型 数字类型 整型和浮点型数据和其它编程语 ...
- Python之Pyautogui模块20180125《PYTHON快速上手让繁琐的工作自动化》18章
复习 PyAutoGUI 的函数本章介绍了许多不同函数,下面是快速的汇总参考:moveTo(x,y)将鼠标移动到指定的 x.y 坐标.moveRel (xOffset,yOffset)相对于当前位置移 ...
- playwright--自动化(一):快速上手
Playwright为现代 Web 应用程序提供可靠的端到端测试. 在JavaScript 和 TypeScript.Python..NET和Java 中都可以使用 Playwright 本人选择py ...
- Python 编程快速上手 第十四章 处理 CSV 文件和 JSON 数据
前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本, ...
- python的requests快速上手、高级用法和身份认证
https://blog.csdn.net/qq_25134989/article/details/78800209 快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其 ...
- 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公
Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...
- Python requests快速上手
Python requests快速上手 这里参考官方文档,在ide中写了一遍,加深一下印象,定义的函数只是为了方便区分不同的请求方式 #-*-coding:utf-8-*- # Time:2017/1 ...
- Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘
Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...
- 《Python游戏编程快速上手》|百度网盘免费下载|Python基础编程
<Python游戏编程快速上手>|百度网盘免费下载| 提取码:luy6 Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言. 本书通过编写一个个 ...
随机推荐
- C#委托使用:多播 ,向委托注册多个方法
private static void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); ...
- Swift 遍历数组元素
..<Array.count { Array[index] } for (index, element) in Array.enumerate() { print(("\(index+ ...
- 程序员遇到Bug时的25个反应
开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...
- ARM Linux 3.x的设备树(Device Tree)
http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1. ...
- dos 加用户
net user lipeng 1qaz3EDC /addnet user zhangnan 1qaz3EDC /addnet localgroup "Remote Desktop User ...
- Jade之属性
属性 所有的html(5)标签在jade中均支持如下写法.jade中省去了html<>和标签的关闭等写法,并将属性写在括号之中.若存在多个属性,可以将其分为多行. jade: a(href ...
- c++ 操作注册表
1. 注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...
- selenium通过WebDriverWait实现ajax测试,实现等页面元素加载完成
WebDriverWait(driver, 10)10秒内每隔500毫秒扫描1次页面变化,当出现指定的元素后结束. http://fox1984.iteye.com/blog/1225265new W ...
- 添加App启动页面
记录下自己在设置app启动页面时遇到的问题. 先写下自己完整的步骤吧. iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3xiPhone Portra ...
- Android--广播机制
1.Android中广播分为两种类型: 1)标准广播:完全异步执行的广播,在广播发出后,所有的广播接收器几乎会在同一时刻接收到,它们之间没有顺序可言,效率高,不可截断: 2)有序广播:同步执行的广播, ...