参考网址
baijiahao.baidu.com/s?id=170146…
前言
load(s),加载,把别的形式的对象,加载为python的对象。
比如python中的dict对象,或者list对象。
什么是json
我们写代码的时候,经常会import json
总的来说,json的作用是:python自己的对象和json字符串对象之间的转换。
具体功能
import json
json.load(): 读取文件,返回python对象
json.loads(): 把json字符串对象-->python自己的对象,比如dict, list
json.dump(): 写入文件,把python对象转存为json字符串格式,没有返回值。
json.dumps(): 把python中的对象类型-->json字符串对象
也就是是说:json是python自己的对象和json字符串对象之间的转换的。
load和dump处理的主要是文件
loads和dumps处理的是字符串
关系图
demo
import json
temp_dict = {'name':'张三', 'age': 20} # python自己的dict对象
print(type(temp_dict))
new_object = joson.dumps(temp_dict) # json字符串对象
print(type(new_object))
# temp_dict是python字典对象,new_object是json字符串对象
# 比如
a = '[11,22,33]' # a是json字符串对象(并不是所有的字符串都是json字符串,必须就有一定的格式才行)
b = json.loads(a)
b = [11,22,33] # b是list对象,把a加载为python自己的对象之后,赋值给b,b就变成了list对象
# 总的来说:就是json字符串对象和python自己的对象之间的转换。
总结
在使用的时候,loads和dumps使用最广泛,需要重点关注。
那么,如何轻松的记住到底是用loads还是dumps呢?
其实也很简单,load意为加载,当需要将文件变成python自己的对象的时候,使用loads,意思就是加载成python的东西用loads,字典就是python的对象。
而dumps意为转存,意思就是将文件变成另外一种字符串形式用于存储,这时候选择dumps。
简单地说就是:加载python用loads,转存字符串用dumps。
dict_obj = {"e_name": "扣除服务费和违约金",
"data_date": str(data_date), # 实际逃单日期
"ride_id": str(ride_id), # ride_id
"user_id": str(driver_user_id), # user_id
"role": "driver", # 角色
"tag": "0"}
with open(log_dir + "evasion_data_board.json", "a") as write_f:
# 比如这里
# dict_obj是python中的dict对象,如果要存储在文件中的话,就必须json.dumps()变成字符串的形式
# 否则就不能存储
json_obj = json.dumps(dict_obj, ensure_ascii=False)
write_f.write(json_obj)
write_f.write("\n")
如果你得到一个json字符串,如果你想灵活的访问其中的属性或者元素的话,
你必须先json.loads()加载成python的对象,比如dict和list
这样就可以使用了。