python模块专题——9.json

json模块是python内置模块,无需安装。用于json格式的数据处理,json字符串与json对象相互转换。

1 使用

import json

json.loads(str)
json.dumps(json)

2 解析

  • 将json字符串转为json对象:json.loads(str)

  • 将json对象转为json字符串:json.dumps(json,ensure_ascii=False,indent=2)

    • ensure_ascii参数设置为false,保存到文件中时就不会把中文转为ascii码
    • indent参数可以将其格式化,添加缩进
  • json.dumps可以将python字典转为json字符串

  • 通常返回json数据的情景

    • 通过调用API
    • 将请求页面转换为手机版,查看请求链接和返回数据情况
    • 转包app,分析数据

3 示例

import requests
import json


def movie_json():
    url='https://movie.douban.com/j/search_subjects?type=movie&tag=%E6%AC%A7%E7%BE%8E&sort=recommend&page_limit=20&page_start=0'
    header={
        "User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",
        "Referer":"https://movie.douban.com/explore"
    }
    res=requests.get(url,headers=header)

    print(res.content.decode())
    print(type(res.content.decode()))

    json_result=json.loads(res.content.decode())#json字符串对象化
    print(type(json_result))
    print(json_result['subjects'])
    for movie in json_result['subjects']:
        print("{}:{}".format(movie['title'],movie['url']))

    with open('movie.json','w',encoding='utf-8') as f:
        f.write(json.dumps(json_result,ensure_ascii=False,indent=2))#json字符串对象化

movie_json()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Zeno_wrj/article/details/107599208
今日推荐