Python json loads详细解析

发布时间:2023-05-23

一、什么是Json和json loads

Json是一种轻量级数据交换格式,易于人们阅读和编写,并且易于机器解析和生成。 json loads是Python内置模块json中一个方法,用于将Json格式的字符串解码成Python对象。

import json
#定义一个Json字符串
json_str = '{"name":"John", "age":30, "city":"New York"}'
#将Json字符串转化为Python对象
python_obj = json.loads(json_str)
#打印Python对象
print(python_obj)

代码运行结果为:

{'name': 'John', 'age': 30, 'city': 'New York'}

二、Json格式和常见数据结构的区别

Json格式与Python的常见数据结构(如字典、列表等)在形式上很相似,但是在使用时还是有一些区别的。

1. 字典

Json格式的字典和Python的字典在形式上是非常相似的。 但是如果我们想要访问Json格式的字典,需要使用字典的key来访问value,而Python的字典可以使用key或者value来访问。

#定义一个Json字符串
json_str = '{"name":"John", "age":30, "city":"New York"}'
#将Json字符串转化为Python对象
python_obj = json.loads(json_str)
#访问Json格式的字典
print(python_obj["name"])
#访问Python的字典
for key, value in python_obj.items():
    if value == "John":
        print(key)

代码运行结果为:

John
name

2. 列表

Json格式的列表和Python的列表在形式上也非常相似,都是由一些元素组成的。 但是Json格式的列表和Python的列表在使用时也是有区别的,Json格式的列表中的元素是可以被命名的(这点和Python的字典很相似),而Python的列表中的元素是没有被命名的。

#定义一个含有Json格式的列表的Json字符串
json_arr_str = '{"books": [{"name":"Python编程从入门到实践", "price":49.00},{"name":"数据结构与算法分析", "price":68.80}]}'
#将Json字符串转化为Python对象
python_obj = json.loads(json_arr_str)
#访问Json格式的列表,通过索引的方式访问
print(python_obj["books"][0]["name"])
#访问Python的列表
for book in python_obj["books"]:
    print(book["name"])

代码运行结果为:

Python编程从入门到实践
Python编程从入门到实践
数据结构与算法分析

3. 数字和布尔值

Json格式中的数字和布尔值和Python中的数字和布尔值是相同的。 但是在Json格式中,数字和布尔值是必须是小写的。

4. null

Json格式中的null相当于Python的None。

三、常见应用场景

Json通常被用于不同平台之间的数据交换,例如浏览器向服务器发送请求,服务器返回Json格式的响应。 同时,由于Json格式的数据解析速度很快,被广泛应用于数据存储和交换的领域。

四、小结

本文介绍了Python内置模块json中的方法json loads的使用方法。通过对Json格式和常见数据结构的比较,我们发现Json格式和Python的数据结构在形式上和使用时都有一定的区别。 Json通常被用于不同平台之间的数据交换、数据存储和交换等领域,是一种非常重要的数据交换格式。