转载记得写上https://blog.csdn.net/bozhanggu2239/article/details/80832644
"""dumps、loads 、其他、dump、load"""
# json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数
"""
import json
first = {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
dumps = json.dumps(first)
print(first) #{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
print(dumps) #{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
print(type(first)) #<class 'dict'>
print(type(dumps)) #<class 'str'>
print(type("fw")) #<class 'str'>
print(type('sf')) #<class 'str'>
Y='_3dumpload.json' #通常使用文件扩展名为.json来指出文件储存的数据为JSON格式
# with open(Y,'w') as f_obj:
# f_obj.write(first) #TypeError: write() argument must be str, not dict
#
with open(Y,'w') as f_obj:
f_obj.write(dumps) #{"d": "4444", "a": "1111", "b": "2222", "c": "3333"}
#{"d": "4444", "a": "1111", "b": "2222", "c": "3333"}经过dump,得到:
#"{\"a\": \"1111\", \"b\": \"2222\", \"c\": \"3333\", \"d\": \"4444\"}"\
"""
#json.loads()用于将str类型的数据转成dict。
"""
import json
first = {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
dumps = json.dumps(first)
dumps_loads = json.loads(dumps)
print(first) #{'b': '2222', 'd': '4444', 'a': '1111', 'c': '3333'}
print(dumps) #{"d": "4444", "a": "1111", "c": "3333", "b": "2222"}
print(dumps_loads) #{'b': '2222', 'd': '4444', 'a': '1111', 'c': '3333'}
print(type(first)) #<class 'dict'>
print(type(dumps)) #<class 'str'>
print(type(dumps_loads)) #<class 'dict'>
"""
#其他
"""
import json
first = {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
dumps = json.dumps(first) #{"d": "4444", "b": "2222", "a": "1111", "c": "3333"}#
dumps2 =json.dumps(dumps) #"{\"d\": \"4444\", \"b\": \"2222\", \"a\": \"1111\", \"c\": \"3333\"}"
dumps3 =json.dumps(dumps2) #"\"{\\\"d\\\": \\\"4444\\\", \\\"b\\\": \\\"2222\\\", \\\"a\\\": \\\"1111\\\", \\\"c\\\": \\\"3333\\\"}\""
dumps4 =json.dumps(dumps3) #"\"\\\"{\\\\\\\"d\\\\\\\": \\\\\\\"4444\\\\\\\", \\\\\\\"b\\\\\\\": \\\\\\\"2222\\\\\\\", \\\\\\\"a\\\\\\\": \\\\\\\"1111\\\\\\\", \\\\\\\"c\\\\\\\": \\\\\\\"3333\\\\\\\"}\\\"\""
print(dumps)
print(dumps2)
print(dumps3) #不能把上面的dumps换成dump不然会报错
print(dumps4)#都是字符串的格式<class 'str'>
"""
#dump和load也是类似dumps和loads的功能,只是必须和文件操作结合起来,不能单独出来
# 如json.dump(numbers,f_obj),即编码的同时将东西写入文件
# dumpshe则是不可以。dumps = json.dumps(first)
# with open(Y,'w') as f_obj:
# f_obj.write(dumps) 这里分2步走,先编码后写入
"""
import json #导入模块json
numbers ={'2':3,'5':7,'11':13}
Y='_3dumpload.json' #通常使用文件扩展名为.json来指出文件储存的数据为JSON格式
with open(Y,'w') as f_obj:
json.dump(numbers,f_obj) #将数据写进去 {"2": 3, "11": 13, "5": 7}
A='_3dumpload.json'
with open(A) as f:
num=json.load(f) #使用json.load(f)加载储存在numbers.json'中的信息
print(num) #{'11': 13, '5': 7, '2': 3}
"""