{}
表示,是一个无序的 “键值对” 集合。例如:{"name": "Alice", "age": 30}
,其中 "name"
和 "age"
是键,"Alice"
和 30
分别是对应的值。[]
表示,是值的有序集合。数组中的值可以是任意 JSON 数据类型,包括对象、数组、字符串、数值、布尔值或 null
。例如:["apple", "banana", "cherry"]
或 [{"name": "Bob", "age": 25}, {"name": "Charlie", "age": 35}]
。" "
括起来的 Unicode 字符序列。例如:"Hello, World!"
。42
、3.14
。true
或 false
。null
:表示一个空值。Python 内置了 json
模块,用于处理 JSON 数据。
json.loads()
函数,将 JSON 格式的字符串转换为对应的 Python 对象(字典或列表等)。python
import json
json_str = '{"name": "David", "age": 28, "is_student": false, "hobbies": ["reading", "swimming"]}'
data = json.loads(json_str)
print(data) # 输出: {'name': 'David', 'age': 28, 'is_student': False, 'hobbies': ['reading','swimming']}
print(data["name"]) # 输出: David
print(data["hobbies"][0]) # 输出: reading
json.dumps()
函数,将 Python 对象(如字典、列表)转换为 JSON 格式的字符串。python
person = {
"name": "Ella",
"age": 32,
"is_employed": true,
"address": null
}
json_str = json.dumps(person)
print(json_str)
# 输出: {"name": "Ella", "age": 32, "is_employed": true, "address": null}
还可以通过设置 indent
参数来格式化输出,使生成的 JSON 字符串更易读:
python
formatted_json = json.dumps(person, indent=4)
print(formatted_json)
# 输出:
# {
# "name": "Ella",
# "age": 32,
# "is_employed": true,
# "address": null
# }
python
student = {
"name": "Frank",
"age": 20,
"scores": [85, 90, 78]
}
print(student["name"]) # 输出: Frank
student["age"] = 21 # 修改年龄
print(student["age"]) # 输出: 21
student["scores"].append(92) # 修改数组中的值
print(student["scores"]) # 输出: [85, 90, 78, 92]
python
fruits = ["apple", "banana", "pear"]
for fruit in fruits:
print(fruit)
students = [
{"name": "Grace", "age": 22},
{"name": "Henry", "age": 24}
]
for student in students:
print(student["name"], student["age"])
json.load()
函数,它可以直接从文件对象中读取 JSON 数据并转换为 Python 对象。python
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
json.dump()
函数,将 Python 对象转换为 JSON 格式并写入文件。python
new_data = {
"name": "Ivy",
"city": "New York"
}
with open('new_data.json', 'w') as file:
json.dump(new_data, file, indent=4)