Loading

Python_json类方法

Python_json类方法

import requests
import json

headers = {
    "User-Agent": "Mozilla/5.0 (Linux Android 6.0Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Mobile Safari/537.36"
}

url = "https://m.toutiao.com/list/?tag=__all__&max_time=0&min_behot_time=0&ac=wap&count=20&format=json_raw&_signature=zDO00gAAr-RscdJ0dNc1tswztM&i=&as=A196A32E19BD4E3&cp=63E95DB45E63CE1&aid=1698"

response = requests.get(url, headers=headers)
j = response.content.decode()

# json.loads把json字符串转成称python类型
ret1 = json.loads(j)
print(type(ret1))  # <class 'dict'>

# json.dumps 能把python字典转换称json字符串
# ret2 = json.dumps(ret1)
# print(type(ret2))  # <class 'str'>

with open("jinritoutiao.json", "w", encoding="utf-8") as f:
    # ensure_ascii:这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False
    # indent:缩进字符
    f.write(json.dumps(ret1, ensure_ascii=False, indent=4))

# 提取json字符串中的新闻摘要,输出到txt中
with open("result.txt", "w", encoding="utf-8") as f:
    for i in range(15):
        f.write("第{}条: {}\n".format(i+1, ret1["data"][i]["abstract"]))

# json.load and json.dump
# 具有read或者write方法的对象就是类文件对象

# 读取json的类文件对象
with open("./jinritoutiao.json", "r", encoding="utf-8") as f:
    print(json.load(f))

# 写入json的类文件对象
with open("./jinritoutiao1.json", "w", encoding="utf-8") as f:
    json.dump(ret1, f, ensure_ascii=False, indent=4)

posted @ 2023-02-13 21:03  ThankCAT  阅读(16)  评论(0编辑  收藏  举报