一、JSON字符串转JSON对象
1、JSON字符串:
{
"name": "John",
"age": 30,
"city": "New York"
}
2、解析方法:
使用Python中的json.loads()
函数可以将JSON字符串解析成对应的JSON对象,使用方法如下:
import json
json_str = '{ "name": "John", "age": 30, "city": "New York" }'
json_obj = json.loads(json_str)
print(json_obj)
输出结果为:
{'name': 'John', 'age': 30, 'city': 'New York'}
3、使用方法说明:
json.loads()
函数的参数为待解析的JSON字符串,返回值为对应的JSON对象。需要注意的是,JSON字符串必须符合JSON语法规范,否则将会报错。
二、JSON对象转JSON字符串
1、JSON对象:
{
"name": "John",
"age": 30,
"city": "New York"
}
2、转换方法:
使用Python中的json.dumps()
函数可以将JSON对象转换成对应的JSON字符串,使用方法如下:
import json
json_obj = { "name": "John", "age": 30, "city": "New York" }
json_str = json.dumps(json_obj)
print(json_str)
输出结果为:
{"name": "John", "age": 30, "city": "New York"}
3、使用方法说明:
json.dumps()
函数的参数为待转换的JSON对象,返回值为对应的JSON字符串。需要注意的是,转换后的JSON字符串并不一定是按键的字母序排列的,这取决于Python的字典实现方式。
三、处理复杂JSON数据
1、嵌套JSON对象:
{
"name": "John",
"age": 30,
"city": "New York",
"children": [
{
"name": "Mary",
"age": 4
},
{
"name": "Tom",
"age": 2
}
]
}
2、处理方法:
使用Python中的json.loads()
函数解析嵌套JSON对象后,可以将嵌套的JSON对象以Python中的嵌套字典和列表的形式表示出来,示例代码如下:
import json
json_str = '{ "name": "John", "age": 30, "city": "New York", "children": [ { "name": "Mary", "age": 4 }, { "name": "Tom", "age": 2 } ] }'
json_obj = json.loads(json_str)
print(json_obj['children'][0]['name']) # 输出 Mary
3、使用方法说明:
使用json.loads()
函数解析嵌套JSON对象后,可以按照Python中嵌套字典和列表的方式访问嵌套的JSON数据。
四、处理JSON中的日期数据
1、日期格式:
{
"name": "John",
"birth": "1985-05-15",
"city": "New York"
}
2、处理方法:
使用Python中的datetime
模块,可以将日期字符串解析成对应的日期对象,并且可以将日期对象格式化成指定的日期字符串。示例代码如下:
import json
from datetime import datetime
json_str = '{ "name": "John", "birth": "1985-05-15", "city": "New York" }'
json_obj = json.loads(json_str)
birth_str = json_obj['birth']
birth_obj = datetime.strptime(birth_str, '%Y-%m-%d')
print('Birth year is:', birth_obj.year)
3、使用方法说明:
使用datetime.strptime()
函数可以将日期字符串解析成对应的日期对象,需要指定日期字符串的格式。使用datetime.strftime()
函数可以将日期对象格式化成指定的日期字符串。
五、处理JSON中的中文字符集
1、JSON字符串:
{
"name": "张三",
"age": 30,
"city": "北京"
}
2、处理方法:
使用Python中的json.dumps()
函数时,指定ensure_ascii=False
参数,可以将中文字符集正确的编码成Unicode字符集。示例代码如下:
import json
json_obj = { "name": "张三", "age": 30, "city": "北京" }
json_str = json.dumps(json_obj, ensure_ascii=False)
print(json_str)
输出结果为:
{"name": "张三", "age": 30, "city": "北京"}
3、使用方法说明:
ensure_ascii=False
参数表示不使用默认的ASCII编码,而是使用Unicode字符集将中文字符集正确编码。