如何使用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数据相关推荐

  1. Python操作Excel文件:插入一列数据

    问题描述:已有Excel文件,其中包含5列数据,要求在第3列前插入一列数据,保存为新文件. 参考代码: 运行结果: --------董付国老师Python系列教材-------- 1)<Pyth ...

  2. python生成json_如何将Python数组转为Json格式数据并存储?

    在Python中将数组转为Json数据存储时需要用到将json模块中的json.dumps()或者json.dump()方法. ·json.dumps()方法用法 使用json.dumps( )方法将 ...

  3. python连接excel存放数据_有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!...

    最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看到 ...

  4. python操作hbase如何快速录入多条数据_python 数据库插入多行

    教你如何用python操作数据库mysql ! ! 前言首先,安装需要的环境,Mysql和Python就不说了,必备的东西. 主要是安装的MySQLdb,可以去sf.net下载,具体地址是http:/ ...

  5. python构建json_如何使用Python构建JSON API

    python构建json The JSON API specification is a powerful way for enabling communication between client ...

  6. python读取第二行_使用Python操作Excel(二):读取数据表

    上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...

  7. python操作手机app_【Python】[技术博客] 一些使用Python编写获取手机App日志的操作...

    一些使用Python编写获取手机App日志的操作 如何获取手机当前打开的App的包名 如何获取当前App进程的PID 如何查看当前App的日志 如何将日志保存到文件 如何关闭进程 如何不显示命令行窗口 ...

  8. 用python操作mysql数据库(之批量插入数据)

    #!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb #建立连接 conn = MySQLdb.connect(host='127. ...

  9. python数据可视化从入门到实战_《Python编程从入门到实践》json数据可视化练习详解...

    <Python编程从入门到实践>16.2中,计算收盘价均值的程序有些不易看懂,结合我自己的理解进行一些说明. 使用的数据集:join格式的数据, 数据集是由多个字典为元素组成的列表.每个字 ...

最新文章

  1. java string出现次数_Java String方法获取字符出现次数及字符最大相同部分示例
  2. HD 1525 Euclid's Game
  3. 如何为Apache JMeter开发插件(一)
  4. 【WebRTC---入门篇】(十二)WebRTC传输协议
  5. 特征码的使用办法_小脚的美丽与哀愁,34/35码的她们都是怎么买鞋的?
  6. 孔维滢201771010110《面向对象程序设计(java)》第一周学习总结
  7. 学习入门运营TikTok需要注意些什么?
  8. eclipse IDE侵入式与非侵入式安装插件方法
  9. hibernate操作数据库
  10. 重大安全事件 | Ubuntu 16.04.4 暴本地提权漏洞
  11. 在JSP中使用CELL插件
  12. 100家企业近年面试题整理
  13. 基于ABP的应用执行Update-Database出现异常的解决办法
  14. c语言结构体世界杯,世界杯冷知识 | 12座球场的结构巡礼
  15. 量子计算机工作原理如何解释,量子计算机工作原理
  16. 你炒的肉丝为何又柴又老又难吃?
  17. IPAD成功完美越狱
  18. 电容笔和触控笔有什么区别?ipad手写电容笔推荐品牌
  19. android安全模式
  20. 电脑播放视频的时候有杂音

热门文章

  1. Spring FactoryBean的开发1
  2. 简单了解RestTemplate消息读取的转化
  3. checkInterruptWhileWaiting
  4. ReentrantLock.nofairTryAcquire
  5. 分布式架构的负载均衡算法
  6. Nacos配置中心介绍
  7. 元素的样式设置 元素类样式的操作 开关灯效果 获取兄弟元素 当前元素的兄弟元素样式
  8. maven 公用仓库_Maven系列(二):Maven 核心概念
  9. 200915阶段一C++模板
  10. python学习教程(链接)