在本教程中,您将学习如何借助示例在Python中解析,读取和编写JSON。 此外,您将学习将JSON转换为dict并将其打印出来。

JSON简介

JSON (JavaScript Object Notation) 是一种用于表示结构化数据的流行数据格式。 常用于服务器和Web应用程序之间传输和接收数据。

在Python中,JSON以字符串形式表示。 例如:

p = "{"name": "Bob", "languages": ["Python", "Java"]}"

将JSON对象存储在文件中也很常见。

J在Python中解析JSON

使用json模块可以轻松解析包含JSON对象的JSON字符串和文件。

import json

person = "{"name": "http://china-testing.github.io/", "languages": ["English", "Fench"]}"

person_dict = json.loads(person)

# Output: {"name": "http://china-testing.github.io/", "languages": ["English", "Fench"]}

print( person_dict)

# Output: ["English", "French"]

print(person_dict["languages"])

执行结果

$ python3 test.py

{"name": "http://china-testing.github.io/", "languages": ["English", "Fench"]}

["English", "Fench"]

这里, person是JSON字符串, person_dict是字典

您可以使用json.load()方法读取包含JSON对象的文件。

假设您有名为person.json的文件,其中包含JSON对象

import json

with open("person.json") as f:

data = json.load(f)

# Output: {"languages": ["English", "Fench"], "name": "http://china-testing.github.io/"}

print(data)

我们使用open()函数来读取json文件。 然后,使用json.load()方法解析文件,该方法为我们提供了名为data的字典。

以使用json.dumps()方法将字典转换为JSON字符串。

import json

person_dict = {"name": "Bob",

"age": 12,

"children": None

}

person_json = json.dumps(person_dict)

# Output: {"name": "Bob", "age": 12, "children": null}

print(person_json)

json.dump()方法将JSON写入文件。

import json

person_dict = {"name": "Bob",

"languages": ["English", "Fench"],

"married": True,

"age": 32

}

with open("person.txt", "w") as json_file:

json.dump(person_dict, json_file)

参考资料

我们使用"w"以书写模式打开了一个名为person.txt的文件。 如果该文件尚不存在,则将创建该文件。 然后, json.dump()将person_dict转换为JSON字符串,该字符串将保存在person.txt文件中。

运行该程序时,将创建person.txt文件。 该文件中包含以下文本。

{"name": "Bob", "languages": ["English", "Fench"], "married": true, "age": 32}

要分析和调试JSON数据,我们可能需要以更易读的格式打印它。 这可以通过将其他参数indent和sort_keys给json.dumps()和json.dump()方法来完成。

import json

person_string = "{"name": "Bob", "languages": "English", "numbers": [2, 1.6, null]}"

# Getting dictionary

person_dict = json.loads(person_string)

# Pretty Printing JSON string back

print(json.dumps(person_dict, indent = 4, sort_keys=True))

运行程序时,输出将是:

{

"languages": "English",

"name": "Bob",

"numbers": [

2,

1.6,

null

]

}

在上面的程序中,我们使用了4空格来缩进。 并且,键按升序排序。缩进的默认值是None 。 并且, sort_keys的默认值为False 。

python3安装json库-python库json快速入门相关推荐

  1. python requests下载图片_python读取图片大小Python Requests模块快速入门

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似.它比 urllib 更加方便,可以节约我们大量的工作,它比 urllib 更加 Pythoner. 安装 Re ...

  2. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门

    原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...

  3. 【Python零基础快速入门系列 | 03】AI数据容器底层核心之Python列表

    • 这是机器未来的第7篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124957520 <Python零基础快速入门 ...

  4. 【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门(一)

    这是机器未来的第52篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126899226 <Python数据科学快速入 ...

  5. 【Python零基础快速入门系列 | 07】浪漫的数据容器:成双成对之字典

    这是机器未来的第11篇文章 原文首发链接:https://blog.csdn.net/RobotFutures/article/details/125038890 <Python零基础快速入门系 ...

  6. 【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇

    这是机器未来的第43篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/126493989 文章目录 1. 概述 2. 四则运算 ...

  7. Python 股票分析快速入门

    Python 股票分析快速入门 这段时间股市又开始火爆起来了,隐约这透着点大牛市气息,多年不用的股票账户也找回来了.然后就想着用python做下股票分析,尝试制作自己的分析脚本,本篇教程是自己的一些笔 ...

  8. Python七天快速入门——第一天

    Python七天快速入门--第二天 Python七天快速入门--第三天 Python七天快速入门--第四天 上 Python七天快速入门--第四天 下 Python七天快速入门--第五天 Python ...

  9. python 操作 zookeeper 快速入门

    python 操作 zookeeper 快速入门 文章目录 python 操作 zookeeper 快速入门 什么是zookeeper python 操作 zk 快速入门 zk节点 创建节点 查询节点 ...

最新文章

  1. Kafka实现细节(下)
  2. html页面vertical,vertical.html
  3. python随机生成模块的应用
  4. 【ZOJ - 3872】Beauty of Array(思维,计算贡献,枚举)
  5. webservice 实现与his系统对接_[Share] EDI 及其他常见系统对接技术
  6. 计算机网络硬件脆弱性,计算机网络的脆弱性有哪几点
  7. 微课|中学生可以这样学Python(8.4节):递归算法例题讲解3
  8. JavaScript的数据类型及其检测
  9. HDOJ 2013 蟠桃记
  10. 基于ssm的仓库管理系统
  11. qq相册回收站复原显示服务器繁忙,qq回收站照片怎么找回?3大恢复方法3分钟解决...
  12. 用VC进行64位编程
  13. 戴尔win10计算机打不开,戴尔Win10系统摄像头打不开怎么办?
  14. word文档中如何将软回车替换为硬回车
  15. 惊喜! UE4 + ftrack开源了!
  16. 阿里云被攻击封多久?
  17. win7安全模式如何打开计算机管理,Win7怎么退出安全模式 win7系统退出安全模式的方法...
  18. Windows10 64位 + caffe + Matlab -- cpu版本
  19. linux 扫描wifi
  20. IBM的APAR搜索入口地址

热门文章

  1. 基于javaweb(springboot+mybatis)网站建设服务管理系统设计和实现以及文档报告设计
  2. java idle 机制_HotSpot VM重量级锁降级机制的实现原理
  3. java获取b站动态列表地址_爬虫入门(三)爬取b站搜索页视频分析(动态页面,DBUtils存储)...
  4. 计算机语言wifi,Windows7WIFI热点设置器
  5. php授权验证系统 c,OAuth 2.0 授权码认证
  6. oracle11g中用asmlib配置磁盘组,ASM学习笔记_配置ASMLIB磁盘组
  7. java执行指定目录的class文件
  8. red flag linux指定域名,Red Flag Server 4.1 系统管理手册(适用桌面linux4.1) 6
  9. vue @click 多个事件_VUE学习记录3
  10. java 文件与base64_java之文件与base64字符之间的相互转换