json_Python,函数dumps、loads、dump、load

转载记得写上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}

"""


猜你喜欢

转载自blog.csdn.net/bozhanggu2239/article/details/80832644
今日推荐