json字符串与字典之间的相互转换,即loads(load)dumps(dump)

# JSON字符串 和 字典之间的相互转换
#
# 头脑中的信息  --》内在的数据结构
#
# 数据  ---》内存中的数据结构  ---》 字典 取值方便
#
# 想记录下来 --》 持久化
# 想表达出来 让别人知道 --》 序列化 把内存中的信息数据结构变成 通用的 文本或文件
#
#
# 我的一个想法 --序列化--》文字 --反序列化-》你的想法


# JSON本质文本,方便传输,存储
# 字典是内存中的数据结果,方便提取数据

# 使用字典构造请求 --》转字符串发送 --》收到响应字符串 --》转字典->提取数据

# 1. JSON字符串转 字典

import json
#json转字典
json_str = '{"a": 1, "b":2, "c":true, "d":null}'
data_dict = json.loads(json_str)
print(type(data_dict), data_dict['c'])

# 2. 字典转JSON
data_dict = {'b': 2, 'c':True, 'd': None, 'e': '张三', 'f': [1, 2, 3], 'a': 1}

json_str = json.dumps(data_dict, indent=2, ensure_ascii=False, sort_keys=True)

print(json_str)

# 3. JSON文件转字典
with open(r'D:\20期\20期\day08\data.json') as f:
    data_dict = json.load(f)
    print(data_dict)

# 4. 字典--》JSON文件
with open(r'D:\20期\20期\day08\data2.json', 'w') as f:
    json.dump(data_dict, f)

 

##########res.json()是指,将响应结果转化为符合json格式的字典,方便提取数据

import requests

def test_get():
    url = 'https://httpbin.org/get?a=1&b=2'
    res = requests.get(url)
    res_dict = res.json()

    a = res_dict['args']['a']
    b = res_dict['args']['b']
    assert a == '1'
    assert b == '2'

    # b = res_dict.get('args', {}).get('b')

 

posted @ 2020-11-05 18:25  听MM的话  阅读(425)  评论(0编辑  收藏  举报