字符型到json型的转换
首先给出要处理的数据,数据为字符串型。
import json
# 一个json的字符串,注意里面的字段要用双引号而非单引号括起来
str = '''
[{
"name":"Bob",
"gender":"male",
"birthday":"1992-10-18"
},{
"name":"Selina",
"gender":"female",
"birthday":"1995-10-18"
},{
"name":"张伟",
"gender":"男",
"birthday":"1999-12-30"
}]
'''
用json.loads()将字符串型的数据转为json型(json数据其实是一个列表,列表中的每个元素都是一个字典)
data = json.loads(str) # 转为json类型的数据
json数据的访问
数据的访问方式,其实就是列表和字典的操作方式,字典的访问建议用get方法。
name = data[0]['name'] # 获取第一个用户的名字
# 尝试获取第一个用户的age,当不存在这个字段时返回参数-1
# 如果使用 age = data[0]['age'], 则会直接报错
age = data[0].get('age',-1)
文件的写操作
# json文件的写操作
with open('data.json','w') as file:
# 将json格式的数据写入文件中,参数indent表示缩进字符数
# json.dumps将data转为json字符
file.write(json.dumps(data, indent = 2))
文件的操作和txt的操作类似,需要注意的是编码方式的限定。其实json文件里面的内容和txt文件一样也是一长串的字符,将文件后缀名改为txt也是一样的。
# 如果数据中存在中文,则需要指定编码方式
with open('data.json', 'w', encoding='utf-8') as file:
# 将ensure_ascii置为False
file.write(json.dumps(data, indent=2, ensure_ascii = False))
文件的读操作
# json文件的读操作,注意打开文件时要指定编码方式为utf-8
with open('data.json','r', encoding='utf-8') as file:
# 以字符的形式读取数据
str = file.read()
# 再将字符格式转为json格式
data = json.loads(str)
print(data)