python操作json_如何使用Python处理JSON数据
如何使用Python处理JSON数据?本篇文章就给大家介绍使用Python处理JSON数据的基本方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
在介绍使用Python处理JSON数据的基本方法之前,我们首先要了解一下什么是JSON?
JSON代表“JavaScript Object Notation”,可以说是“基于JavaScript语言符号的数据格式”。但是,该表示法仅基于JavaScript,可用于其他各种语言。
JSON是我们存储和交换数据的一种方式,它通过其语法实现,并在许多Web应用程序中使用。JSON的优点在于它具有人类可读的格式,这可能是在数据传输中使用它的原因之一,此外还有使用API时的有效性。
在JSON中,数据以名称/值(name/value)对表示;大括号内存储对象,每个名称后跟':'(冒号),名称/值对之间要用(逗号)分隔;方括号包含数组,值以(逗号)分隔。
JSON格式数据的示例:{
"book1":{
"title": "Python Beginners",
"year": 2005 ,
"page": 399
},
"book2":{
"title": "Python Developers",
"year": 2006 ,
"page": 650
}
}
下面我们来详细了解一下在Python中如何处理JSON数据。
Python使得处理JSON数据变得简单。实现此目的的模块是json模块。该模块应该包含在Python(内置)安装中,因此你不需要像使用PDF和Excel文件那样安装任何外部模块。要使用此模块,你唯一需要的是导入它(开头写入):import json
但是,JSON库是做什么的呢?此库主要从文件或字符串解析JSON。它还将JSON解析为Python中的字典或列表,反之亦然,即将Python字典或列表转换为JSON字符串。
读取JSON(JSON转Python)
读JSON意味着将JSON转换为Python值(对象)。如上所述,json库将JSON解析为Python中的字典或列表。为此,我们使用loads()函数(从字符串加载),如下所示:import json
jsonData = '{"name": "Frank", "age": 39}'
jsonToPython = json.loads(jsonData)
如果要查看输出,请执行 print jsonToPython,在这种情况下,你将获得以下输出:{'age': 39, 'name': 'Frank'}
也就是说,数据作为Python字典(JSON对象数据结构)返回。
Python转JSON
上一节我们介绍了JSON转Python,这一节我们将向你展示如何将Python值转换(编码)为JSON。
假设我们在Python中有以下字典:import json
pythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True}
dictionaryToJson = json.dumps(pythonDictionary)
如果我们运行 print dictionaryToJson,我们得到以下JSON数据:{"age": 44, "isEmployed": true, "name": "Bob"}
因此,此输出被视为对象(Dictionary)的数据表示。该方法dumps()是此类操作的关键。
此时需要注意的是,JSON不能存储所有类型的Python对象,只能存储以下类型:列表; 字典; 布尔值; 数; 字符串; 没有。因此,需要转换任何其他类型以便存储在JSON中。
假设我们有以下课程:class Employee(object):
def __init__(self, name):
self.name = name
假设我们创建了一个新对象abder,如下所示:abder = Employee('Abder')
如果我们想将此对象转换为JSON,该怎么办?那是json.dumps(abder)?在这种情况下,你将收到类似于以下内容的错误:Traceback (most recent call last):
File "test.py", line 8, in
abderJson = json.dumps(abder)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable
但是,有解决方法吗?幸运的是有。要解决此问题,我们可以定义类似于以下的方法:def jsonDefault(object):
return object.__dict__
然后将对象编码为JSON,如下所示:jsonAbder = json.dumps(abder, default=jsonDefault)
如果你运行 print jsonAbder,你应该得到以下输出:{"name": "Abder"}
我们现在已经将Python对象(abder)编码为JSON。
以上就是如何使用Python处理JSON数据的详细内容,更多请关注php中文网其它相关文章!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
python操作json_如何使用Python处理JSON数据相关推荐
- Python操作Excel文件:插入一列数据
问题描述:已有Excel文件,其中包含5列数据,要求在第3列前插入一列数据,保存为新文件. 参考代码: 运行结果: --------董付国老师Python系列教材-------- 1)<Pyth ...
- python生成json_如何将Python数组转为Json格式数据并存储?
在Python中将数组转为Json数据存储时需要用到将json模块中的json.dumps()或者json.dump()方法. ·json.dumps()方法用法 使用json.dumps( )方法将 ...
- python连接excel存放数据_有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!...
最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看到 ...
- python操作hbase如何快速录入多条数据_python 数据库插入多行
教你如何用python操作数据库mysql ! ! 前言首先,安装需要的环境,Mysql和Python就不说了,必备的东西. 主要是安装的MySQLdb,可以去sf.net下载,具体地址是http:/ ...
- python构建json_如何使用Python构建JSON API
python构建json The JSON API specification is a powerful way for enabling communication between client ...
- python读取第二行_使用Python操作Excel(二):读取数据表
上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...
- python操作手机app_【Python】[技术博客] 一些使用Python编写获取手机App日志的操作...
一些使用Python编写获取手机App日志的操作 如何获取手机当前打开的App的包名 如何获取当前App进程的PID 如何查看当前App的日志 如何将日志保存到文件 如何关闭进程 如何不显示命令行窗口 ...
- 用python操作mysql数据库(之批量插入数据)
#!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb #建立连接 conn = MySQLdb.connect(host='127. ...
- python数据可视化从入门到实战_《Python编程从入门到实践》json数据可视化练习详解...
<Python编程从入门到实践>16.2中,计算收盘价均值的程序有些不易看懂,结合我自己的理解进行一些说明. 使用的数据集:join格式的数据, 数据集是由多个字典为元素组成的列表.每个字 ...
最新文章
- java string出现次数_Java String方法获取字符出现次数及字符最大相同部分示例
- HD 1525 Euclid's Game
- 如何为Apache JMeter开发插件(一)
- 【WebRTC---入门篇】(十二)WebRTC传输协议
- 特征码的使用办法_小脚的美丽与哀愁,34/35码的她们都是怎么买鞋的?
- 孔维滢201771010110《面向对象程序设计(java)》第一周学习总结
- 学习入门运营TikTok需要注意些什么?
- eclipse IDE侵入式与非侵入式安装插件方法
- hibernate操作数据库
- 重大安全事件 | Ubuntu 16.04.4 暴本地提权漏洞
- 在JSP中使用CELL插件
- 100家企业近年面试题整理
- 基于ABP的应用执行Update-Database出现异常的解决办法
- c语言结构体世界杯,世界杯冷知识 | 12座球场的结构巡礼
- 量子计算机工作原理如何解释,量子计算机工作原理
- 你炒的肉丝为何又柴又老又难吃?
- IPAD成功完美越狱
- 电容笔和触控笔有什么区别?ipad手写电容笔推荐品牌
- android安全模式
- 电脑播放视频的时候有杂音