崂山区建设管理局网站怎么了黑,网站开发和游戏开发,网络架构有哪些,建英文产品网站文章目录 Json格式介绍python中json模块的使用 Json格式介绍
JSON#xff08;JavaScript Object Notation#xff09;是一种轻量级的数据交换格式#xff0c;它基于 ECMAScript#xff08;欧洲计算机协会制定的js规范#xff09;的一个子集#xff0c;采用完全独立于语言… 文章目录 Json格式介绍python中json模块的使用 Json格式介绍
JSONJavaScript Object Notation是一种轻量级的数据交换格式它基于 ECMAScript欧洲计算机协会制定的js规范的一个子集采用完全独立于语言的文本格式来存储和表示数据。JSON易于人阅读和编写同时也易于机器解析和生成。
JSON格式的基本结构是基于两种类型的值
简单值这些包括字符串、数字、布尔值true 或 false、null、JSON数组由方括号 [] 包围的值的列表和JSON对象由大括号 {} 包围的键值对的列表。复合值JSON对象和JSON数组可以用来组合简单值和复合值以创建更复杂的数据结构。JSON对象
JSON对象是一个无序的键值对集合其中每个键都是一个字符串每个值都可以是一个简单值或另一个JSON对象或JSON数组。
{key1: value1,key2: 123,key3: true,key4: null,key5: [1, 2, 3],key6: {nestedKey1: nestedValue1,nestedKey2: nestedValue2}
}JSON数组
JSON数组是一个有序的值列表用方括号包围。数组中的每个值都可以是一个简单值或另一个JSON对象或JSON数组。
[value1,123,true,null,{key1: value1,key2: value2},[1, 2, 3]
]字符串
JSON中的字符串必须使用双引号包围而不是单引号。
{name: John Doe,greeting: Hello, world!
}数字
JSON支持整数和浮点数。
{age: 30,score: 9.8
}布尔值
JSON中的布尔值只能是 true 或 false。
{isStudent: true,hasGraduated: false
}Null
JSON中的 null 值表示空或不存在的值。
{address: null
}JSON格式简洁清晰易于阅读和编写因此在Web开发中广泛用作前后端数据交换的格式。在Python、JavaScript、Java、C#等许多编程语言中都有现成的库或函数来处理JSON数据的编码序列化和解码反序列化。
python中json模块的使用
在Python中json模块是用于处理JSON数据的标准库。你可以使用它来将Python对象编码或序列化成JSON格式的字符串也可以将JSON格式的字符串解码或反序列化成Python对象。以下是json模块的一些基本用法示例 编码序列化
将Python对象如字典、列表、字符串、数字等转换为JSON格式的字符串。
import json# Python字典
data {name: John,age: 30,city: New York
}# 使用json.dumps()将Python对象编码为JSON字符串
json_string json.dumps(data)print(json_string)
# 输出: {name: John, age: 30, city: New York}# 你可以使用参数来定制输出的JSON字符串比如缩进以增加可读性
pretty_json_string json.dumps(data, indent4)print(pretty_json_string)
# 输出:
# {
# name: John,
# age: 30,
# city: New York
# }解码反序列化
将JSON格式的字符串转换为Python对象如字典、列表等。
import json# JSON字符串
json_string {name: John, age: 30, city: New York}# 使用json.loads()将JSON字符串解码为Python对象
data json.loads(json_string)print(data)
# 输出: {name: John, age: 30, city: New York}# 你可以看到解码后的数据是一个Python字典
print(type(data))
# 输出: class dict# 如果JSON字符串表示一个数组解码后将得到Python列表
json_array_string [1, 2, 3, four]
data_array json.loads(json_array_string)print(data_array)
# 输出: [1, 2, 3, four]写入文件
将Python对象编码为JSON格式并写入到文件中。
import jsondata {name: John,age: 30,city: New York
}# 使用with语句打开文件并将数据写入到文件中
with open(data.json, w) as f:json.dump(data, f)从文件读取
从文件中读取JSON数据并解码为Python对象。
import json# 使用with语句打开文件并读取数据
with open(data.json, r) as f:data json.load(f)print(data)
# 输出: {name: John, age: 30, city: New York}错误处理
当处理JSON数据时可能会遇到格式错误或无法序列化的对象。为了避免程序崩溃你可以使用try和except语句来捕获可能抛出的异常。
import jsontry:# 尝试解码一个格式错误的JSON字符串data json.loads({name: John, age: thirty})
except json.JSONDecodeError as e:print(f解码错误: {e})try:# 尝试序列化一个无法序列化的对象如包含datetime的复杂对象complex_data {name: John, timestamp: datetime.datetime.now()}json.dumps(complex_data)
except TypeError as e:print(f序列化错误: {e})在使用json模块时确保你的数据是可以被序列化的并且JSON字符串的格式是正确的否则你可能会遇到错误。