dump成json字符串以及编码问题
import json
persons = [
{
'username':"张三",
'age': 18,
'country':"李四"
},
{
'username':"bbb",
'age': 19,
'country':"china"
}
]
# json_str = json.dumps(persons)
# print(type(json_str))
# print(json_str)
# 使用文件系统方式,将json字符串写入到当前文件夹下的persion.txt文件中
# with open("persion.txt","w") as fp:
# fp.write(json_str)
# # 使用dump()函数将json文件直接输出到persion.json文件中
# with open("persion.josn","w",encoding="utf-8") as fp:
# json.dump(persons,fp,ensure_ascii=False)
# python中只有基本数据类型才能转换成json格式的字符串,也即:int、float、str、dict(字典)、tuple(元组)。
# 例如下面代码:将一个Persion对象转化成json对象是就会报错TypeError: Object of type Persion is not JSON serializable
# 想要将Persion对象转化成json对象,需将Persion对象先转换成基本数据类型,再转换成json对象
class Persion(object):
country = "china"
a = {
'persion':Persion()
}
json.dumps(a)
将json字符串load成python对象
import json
# # 将字符串转化成字典类型
# json_str = '[{"username": "张三", "age": 18, "country": "李四"}, {"username": "bbb", "age": 19, "country": "china"}]'
# persions = json.loads(json_str)
# print(type(persions))
# for persion in persions:
# print(type(persion))
# print(persion)
# 从文件中加载json数据
with open("persion.josn","r",encoding="utf-8") as fp:
persions = json.load(fp)
print(type(persions))
for persion in persions:
print(type(persion))
print(persion)