当我们使用Python提供的json
模块进行JSON序列化时,我们会发现对于每个数据类型,都会有不同的方法来进行序列化。
以下是一些常见的Python数据类型,及其对应的JSON序列化方法。
字符串(String)序列化
字符串序列化是非常简单的,它只需要将字符串用双引号包裹起来即可。例如:
import json
data = {
"name": "Lucy",
"age": 18,
"gender": "female"
}
json_data = json.dumps(data)
print(json_data) # 输出: {"name":"Lucy","age":18,"gender":"female"}
数字(Number)序列化
数字序列化也很简单,只需要将数字转换成字符串并直接输出即可。例如:
import json
data = {
"age": 18,
"height": 1.72
}
json_data = json.dumps(data)
print(json_data) # 输出: {"age":18,"height":1.72}
布尔值(Boolean)序列化
布尔值序列化同样很简单,只需要将True
和False
直接输出即可。例如:
import json
data = {
"is_valid": True,
"is_expired": False
}
json_data = json.dumps(data)
print(json_data) # 输出: {"is_valid":true,"is_expired":false}
列表(List)序列化
列表序列化时,需要使用json.dumps()
方法转换成JSON字符串后输出。例如:
import json
data = {
"numbers": [1, 2, 3],
"texts": ["Hello", "world"]
}
json_data = json.dumps(data)
print(json_data) # 输出: {"numbers":[1,2,3],"texts":["Hello","world"]}
字典(Dictionary)序列化
字典序列化同样需要使用json.dumps()
方法转换成JSON字符串后输出。例如:
import json
data = {
"user": {
"name": "Lucy",
"age": 18
},
"company": {
"name": "ABC",
"employees": 1000
}
}
json_data = json.dumps(data)
print(json_data) # 输出: {"user":{"name":"Lucy","age":18},"company":{"name":"ABC","employees":1000}}
除了以上列举的数据类型外,还存在其他复杂数据类型如元组、集合、自定义对象等,对于这些类型,可以使用default
参数来进行序列化。
例如,假设我们有一个自定义的Python对象:
class Person:
name = ""
age = 0
def __init__(self, name, age):
self.name = name
self.age = age
我们可以使用default
参数来将此对象序列化成字典:
import json
def person_to_dict(person):
return {'name': person.name, 'age': person.age}
person = Person('Lucy', 18)
json_data = json.dumps(person, default=person_to_dict)
print(json_data) # 输出: {"name": "Lucy", "age": 18}
使用这种方法,我们就可以将Python中的任何数据类型转换成JSON字符串了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python如何把不同类型数据的json序列化 - Python技术站