Python 操作 JSON 的 9 个示例

Json(JavaScript Object Notation 的缩写)是一种数据交换格式,最常用于客户端-服务器通信;当然你也可以将它保存到本地,所以也可以用来作为配置文件;Json 很像 Python 中的字典,下面就让我们来一起学习如何用 Python 来操作 Json


01 将字典转化为 JSON

输入:

data = {"key1":"value1","key2":"value2"}

输出:

data = {"key1":"value1","key2":"value2"}

有什么不一样吗?其实它们是很相似的

示例代码:

import jsondata = {"key1" : "value1", "key2" : "value2"}# 我们用到了json库的dumps方法,将Python对象转化为Json对象
jsonData = json.dumps(data)
print(jsonData)


02 访问 JSON 中的key2的值

输入:

data = {"key1":"value1","key2":"value2"}

输出:

value2

示例代码:

import jsonsampleJson = """{"key1": "value1", "key2": "value2"}"""# 我们用到了json库的loads方法
data = json.loads(sampleJson)
print(data['key2'])


03 将 Json 格式化后输出

输入:

sampleJson = {"key1": "value1", "key2": "value2"}

输出:

{"key1" = "value2","key2" = "value2","key3" = "value3"
}

示例代码:

import jsonsampleJson = {"key1" : "value2", "key2" : "value2", "key3" : "value3"}
prettyPrintedJson  = json.dumps(sampleJson, indent=2, separators=(",", " = "))
print(prettyPrintedJson)


04 将 Json 按key排序后保存输出到文件中

输入:

sampleJson = {"id" : 1, "name" : "value2", "age" : 29}

输出:

{"age": 29,"id": 1,"name": "value2"
}

示例代码:

import jsonsampleJson = {"id" : 1, "name" : "value2", "age" : 29}print("Started writing JSON data into a file")
with open("sampleJson.json", "w") as write_file:json.dump(sampleJson, write_file, indent=4, sort_keys=True)
print("Done writing JSON data into a file")


05 访问 Json 的嵌套对象,并输出 salary的值

输入:

sampleJson = """{"company":{"employee":{"name":"emma","payble":{"salary":7000,"bonus":800}}}
}"""

输出:

7000

示例代码:

import jsonsampleJson = """{"company":{"employee":{"name":"emma","payble":{"salary":7000,"bonus":800}}}
}"""data = json.loads(sampleJson)
print(data['company']['employee']['payble']['salary'])


06 将类对象转化为 Json

输入:

class Vehicle:def __init__(self, name, engine, price):self.name = nameself.engine = engineself.price = pricevehicle = Vehicle("Toyota Rav4", "2.5L", 32000)

输出:

{"name": "Toyota Rav4","engine": "2.5L","price": 32000
}

示例代码:

import json
from json import JSONEncoderclass Vehicle:def __init__(self, name, engine, price):self.name = nameself.engine = engineself.price = priceclass VehicleEncoder(JSONEncoder):def default(self, o):return o.__dict__vehicle = Vehicle("Toyota Rav4", "2.5L", 32000)print("Encode Vehicle Object into JSON")
vehicleJson = json.dumps(vehicle, indent=4, cls=VehicleEncoder)
print(vehicleJson)


07 将 Json 转化为类对象

输入:

{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }

输出:

vehicleObj.name, vehicleObj.engine, vehicleObj.price

示例代码:

import jsonclass Vehicle:def __init__(self, name, engine, price):self.name = nameself.engine = engineself.price = pricedef vehicleDecoder(obj):return Vehicle(obj['name'], obj['engine'], obj['price'])vehicleObj = json.loads('{ "name": "Toyota Rav4", "engine": "2.5L", "price": 32000 }',object_hook=vehicleDecoder)print("Type of decoded object from JSON Data")
print(type(vehicleObj))
print("Vehicle Details")
print(vehicleObj.name, vehicleObj.engine, vehicleObj.price)


08 判断 Json 格式是否正确

输入:

{"company":{"employee":{"name":"emma","payble":{"salary":7000"bonus":800}}}
}

输出:

Given JSON string is Valid False

即格式错误

示例代码:

import jsondef validateJSON(jsonData):try:json.loads(jsonData)except ValueError as err:return Falsereturn TrueInvalidJsonData = """{ "company":{ "employee":{ "name":"emma", "payble":{ "salary":7000 "bonus":800} } } }"""
isValid = validateJSON(InvalidJsonData)print("Given JSON string is Valid", isValid)


09 获取 JSON 中keyname的所有值

输入:

[{"id":1,"name":"name1","color":["red","green"]},{"id":2,"name":"name2","color":["pink","yellow"]}
]

输出:

["name1", "name2"]

示例代码:

import jsonsampleJson = """[{"id":1,"name":"name1","color":["red","green"]},{"id":2,"name":"name2","color":["pink","yellow"]}
]"""data = []
try:data = json.loads(sampleJson)
except Exception as e:print(e)dataList = [item.get('name') for item in data]
print(dataList)



今天的教程,主要学习了:如何使用Python操作Json,包括读取和写入;大家都学会了吗?

欢迎关注公众号:KnowHub 知识加油站

后续我们会循序渐进的学习办公编程的其他知识,欢迎大家关注!

sqlrowset 转化为json_Python 操作 JSON 的 9 个示例相关推荐

  1. js之操作JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  2. Python操作Json、Csv、Excel文件

    一.Python操作Json文件 import json# json中使用双引号 data={'aa':11,'bb':22,'cc':'33' } # 字典转化json print(json.dum ...

  3. JSON基础 JS操作JSON总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  4. JS操作JSON数据交换

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 采用完全独立于语言的文本格式,易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的 ...

  5. python2 json大数据_大数据技术之python 操作json

    本篇文章探讨了大数据技术之python 操作json,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. #!/usr/bin/env python import json s = ...

  6. Java操作json的通用类

    2019独角兽企业重金招聘Python工程师标准>>> 提供一个Java中操作JSON格式的公共类: JSON(JavaScript Object Notation) 是一种轻量级的 ...

  7. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services.AddM ...

  8. php 操作json的各种格式

    php中操作json的函数加密:json_encode() ,也就是把数据转成json格式 * 数组转换成json格式时,索引数组得出的结果是不带映射关系,所以都是[]:关联数组是映射,所以最外围是{ ...

  9. sqlserver慕课_SqlServer 操作 JSON

    Intro Sql Server 从 2016 开始支持了一些 json 操作,最近的项目里也是好多地方直接用字段直接存成了 json ,需要了解一下怎么在 Sql Server 中操作 JSON. ...

最新文章

  1. 熬夜精心整理的一线大厂大数据、人工智能全套教程下载(含视频+源码)!!...
  2. 吐血整理《计算机网络五层协议之物理层(中)》
  3. java自动装箱和拆箱_关于java自动装箱和自动拆箱
  4. Java设计模式学习总结(15)——行为型模式之责任链模式
  5. 大数据_Flink_流式处理_Flik Vs Spark streaming_Flink的特点---Flink工作笔记0007
  6. cover 在html中的作用,Cover
  7. 小程序加载图片失败,默认图片的替换方法
  8. python循环捕捉异常_python – 如何在for循环迭代器中捕获异常
  9. html前端登录界面示例
  10. 一名优秀的前端大牛《司徒正美》
  11. 无需重装系统,Windows Server 2019系统硬盘无损从MBR转换为GPT格式
  12. GTA4 EFLC cheat code
  13. MSP430F149TIMER_A的连续计数模式
  14. 免费!中文!10个最佳Python学习网站推荐
  15. 高级货!Django实现基于人脸识别的门禁管理系统【源码】
  16. 最新历史版本 :LINUX KERNEL 配置编译中文指南
  17. t420i升级固态硬盘提升_技术丨如何升级固态硬盘,提高电脑性能
  18. 8月8日科技联播:库比蒂诺想修超级高铁,市长点名要苹果掏钱
  19. 设置Ubuntu 20.04的静态IP地址
  20. Android Fragment 真正的完全解析(上)

热门文章

  1. 【codevs1830】【BZOJ1951】古代猪文,数论综合
  2. 复数基础—— i = 根号 -1 _3
  3. linux ntp 追赶,Linux 时间同步 ntpd
  4. Delaunay三角剖分----OpenCV
  5. Android JNI开发入门之二
  6. python新线程打开cmd_Python – 函数无法在新线程中运行
  7. php 7 class 初始化 销毁_在 PHP 中使用和管理 Session
  8. DUBBO与ZOOKEEPER、SPRINGMVC整合和使用
  9. Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版
  10. Swift - 将DaSwift-Data数据转换为[UInt8](bytes字节数组)