文章目录

  • 1. 解析 JSON 字符串示例
    • 1.1. 解析 JSON 字符串为 Python 字典
    • 1.2. 解析 JSON 字符串为 Python 列表
  • 2. 如何将 Python 类对象转化为 JSON 字符串?
    • 2.1. 转换 Python 类对象为 JSON 字符串
    • 2.2. 将 Python 类对象的属性转化为 JSON 字符串
  • 3. Python 元组转换为 JSON 数组
    • 3.1. 转换 Python 元组为 JSON 字符串
    • 3.2. 转换装有不同数据类型元素的元组为 JSON 字符串
  • 参考资料

1. 解析 JSON 字符串示例

要将 JSON 字符串解析为一个 Python 对象,你可以使用 Python 内建 json 库。json 包里的 loads() 函数用于解析 JSON 串。

import json
pythonObj = json.loads(jsonStr)

其中,jsonStr 是一个包含 JSON 数据的字符串,而 json.loads() 将返回一个 Python 对象。基于 JSON 字符串的数据结构,返回 Python 对象的数据类型将为列表或字典。

1.1. 解析 JSON 字符串为 Python 字典

接下来我们创建一个包含 JSON 数据的字符串,然后使用 json.loads() 函数来对其进行解析。

# Parse JSON String to Python Dictionary
import json
jsonstr = '{"name":"Tesla", "age":2, "city":"New York"}'
pythonOjb = json.loads(jsonstr)
print(type(pythonOjb))
print(pythonOjb)
name = pythonOjb["name"]
print(name)

执行和输出:

本示例中的 JSON 字符串是一个内含多个键值对的单一元素。因此 loads() 函数对该 JSON 字符串解析得到的数据类型是为字典。

1.2. 解析 JSON 字符串为 Python 列表

接下来我们来看另一种内含多个键值对的一组元素的 JSON 字符串,我们同样使用 json.loads() 函数对其进行解析。

# Parse JSON String to Python List
import json
jsonStr = '[{"name":"Tesla", "age":2, "city":"New York"}, {"name":"Jim", "age":3, "city":"Boston"}]'
pythonObj = json.loads(jsonStr)
print(type(pythonObj))
print(pythonObj)
print(type(pythonObj[0]))
print(pythonObj[0])
city = pythonObj[1]["city"]
print(city)

执行和输出:

本示例中的 JSON 字符串包含有多组元素。因此由 loads() 函数解析返回的数据类型是一个列表,而该列表中元素的数据类型是为字典。

2. 如何将 Python 类对象转化为 JSON 字符串?

要将一个 Python 类对象转化为 JSON 字符串,或者将类对象的属性保存为 JSON 字符串,使用 json.dumps() 方法。

jsonStr = json.dumps(myobject.__dict__)

其中,

  • json 是模块名。
  • dumps 是讲 Python 对象转换为 JSON 字符串的方法。她将返回一个 JSON 字符串。
  • myobject 是 Python 类对象,myobject.dict 用于 拿到对象属性的字典版本。

2.1. 转换 Python 类对象为 JSON 字符串

在接下来的示例中,我们定义了一个 Python 类,然后创建了一个该类的对象,最后将其属性转化为一个 JSON 字符串。

# Convert Python Class Object to JSON string
import json
class Laptop:name = 'My Laptop'processor = 'Intel Core'
laptop1 = Laptop()
laptop1.name = 'Dell Alienware'
laptop1.processor = 'Intel Core i7'
jsonStr = json.dumps(laptop1.__dict__)
print(jsonStr)

执行和输出:

可以看到,属性名都被转换成了 JSON 的键而属性值则被转换成了 JSON 的值。

2.2. 将 Python 类对象的属性转化为 JSON 字符串

在以下示例中,我们定义了一个拥有不同数据类型如字符串、整型浮点型属性的 Python 类,然后创建了一个该类的对象,然后将该类的对象的属性转换为 JSON 串。

# Convert Properties of Python Class Object to JSON string
import json
class Laptop:def __init__(self, name, processor, hdd, ram, cost):self.name = nameself.processor = processorself.hdd = hddself.ram = ramself.cost = cost
laptop1 = Laptop('Dell Alienware', 'Intel Core i7', 512, 8, 2500.00)
jsonStr = json.dumps(laptop1.__dict__)
print(jsonStr)

执行和输出:

3. Python 元组转换为 JSON 数组

要将 Python 元组转换为 JSON 数组,将元组作为方法的参数传给 json.dumps() 方法。

jsonStr = json.dumps(mytuple)

3.1. 转换 Python 元组为 JSON 字符串

在接下来的示例中,我们创建了一个元组并将其转换为一个 JSON 字符串。

# Convert Python Tuple to JSON String
import json
mytupe = ("python", "json", "mysql")
jsonStr = json.dumps(mytupe)
print(jsonStr)

执行和输出:

3.2. 转换装有不同数据类型元素的元组为 JSON 字符串

接下来我们创建一个由不同数据类型元素组成的元组,然后将其转换为一个 JSON 字符串。之后,我们对该 JSON 串进行解析并访问其元素。

# Convert Python Tuple with Different Datatypes to JSON String
import json
mytupe = ("python", "json", 22, 23.04)
jsonStr = json.dumps(mytupe)
print(type(jsonStr))
print(jsonStr)
jsonArr = json.loads(jsonStr)
print(type(jsonArr))
print(jsonArr[2])

执行和输出:

参考资料

  • Python – Parse JSON String
  • Convert Python Class Object to Python
  • Convert Python Tuple to JSON Array

简单 Python 快乐之旅之:Python 基础语法之 JSON 专题相关推荐

  1. 小猪的Python学习之旅 —— 17.Python数据分析:我主良缘交友了解下

    小猪的Python学习之旅 -- 17.Python数据分析:我主良缘交友了解下 标签:Python 一句话概括本文: 爬取我主良缘交友所有的妹子信息,利用Jupyter Notebook对五个方面: ...

  2. 小猪的Python学习之旅 —— 19.Python微信自动好友验证,自动回复,发送群聊链接

    小猪的Python学习之旅 -- 19.Python微信自动好友验证,自动回复,发送群聊链接 标签:Python 一句话概括本文: 上一节利用itchat这个库,做了小宇宙早报的监测与转发, 本节新增 ...

  3. 小猪的Python学习之旅 —— 18.Python微信转发小宇宙早报

    小猪的Python学习之旅 -- 18.Python微信转发小宇宙早报 标签:Python 一句话概括本文: 利用itchat,监控特定信息,转发到特定微信群- 引言: 上一篇 小猪的Python学习 ...

  4. python快速入门【一】-----基础语法

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  5. 简单 Python 快乐之旅之:Python 基础语法之文件操作专题

    文章目录 1. 读取文本文件 1.1. 读取文本文件里的个别字符 1.2. 以文本模式读取文件 2. 向文本文件写入字符串 2.1. 将字符串写入文本文件 2.2. 在文本模式下将字符串写入文本文件 ...

  6. python repl_Python自学第二天 REPL+基础语法

    一.什么是REPL? 其实REPL就是一种概念,让我们来看一个简单的例子: image.png 当我们 win+R 进入 dos 环境后,输入python 光标会进入等待输入状态,即光标不停闪动,且前 ...

  7. 【Python学习笔记】3. Python3 基础语法

    前言 本文介绍Python3 基础语法. 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -*- ...

  8. python 识别子串的位置_Python基础语法小白这一篇就足够了!

    一个多星期的 Python基础语法学习结束,整理了一些常用必备的知识要点笔记.大家可以参考参考,内容比较长,知识点涉及还是蛮全面的(没面向对象),面向对象总结了以后会再单独发一篇,没有耐心的朋友可以直 ...

  9. Cris 的 Python日记(一):基础语法

    文章目录 序言 0. 安装Python 环境,这里博主就使用以前搭配的 Anaconda 环境 1. Python 和 Sublime 的整合 2. 基本概念 3. 字面量和变量 4. 变量和标识符 ...

最新文章

  1. CUBLAS_STATUS_ALLOC_FAILED CUDA_ERROR_OUT_OF_MEMORY
  2. 桌面支持--打印机任务取消不了
  3. 利用python计算偏差-方差权衡
  4. UI自动化之元素定位(xpath、css)
  5. Mysql批量更新的三种方式
  6. matlab中的运算函数,基于Matlab软件的函数运算在实践中的应用
  7. VB中DoEvents的注意事项
  8. #import和@class 的区别
  9. Ansible自动化运维笔记3(playbook)
  10. C语言随笔小算法:取出一个任意整数的每一位数值
  11. ssh相关命令Linux,Linux SSH常用命令 [长期更新]...
  12. 【浅墨著作】《OpenCV3编程入门》内容简介勘误配套源代码下载
  13. 智慧林草信息化解决方案(森林防火应急指挥系统)
  14. android客户端服务器传输,【图片】【转】通过Android 客户端上传数据到服务器【aide吧】_百度贴吧...
  15. QQ、微信头像照片模糊怎么办?如何处理高清?
  16. Python作业:公鸡5元/只,母鸡3元/只,小鸡1元3只。问100元怎么买到100只。
  17. uniapp样式选择器最全详解
  18. 2020语数英小学初中课程百度云学而思Python笔记
  19. 基于Matlab使用 IMU、磁力计和高度计估计方向和高度(附源码)
  20. 子弹散射——Unity随手记(2021.2.4)

热门文章

  1. python归一化nan加扰动_标准化和归一化对机器学习经典模型的影响
  2. Java语言高级-常用API-第四节 ArrayList集合
  3. 论职能线和产品线的部门划分
  4. [应用推荐]FreeMind自动生成系统盘的树状图(思维导图)
  5. EBS:AP_INV_SELECTION_CRITERIA_ALL
  6. 自编码神经网络相似图片检索
  7. cli命令行配置路由器_Cisco路由CLI基础命令
  8. 用计算机怎么管理小米路由器,小米路由器3做二级路由器怎么设置?小米路由器3设置详细教程...
  9. 微软云中国的服务器在哪,微软云计算平台Windows Azure将落户中国
  10. java邮件数据库_javamail-demo(完整源码+数据库)