• 用python生成json文件


    一、json简单介绍

    JSON是用于存储和交换数据的语法,是一种轻量级的数据交换格式。经常用于接口数据传输、序列化、配置文件等
    json的形式有2种:键值对形式)、数组形式
    python可以通过json库,解析字符串或文件中的内容转为json字符串或python的字典或列表

    二、json中会有几个常用的方法

    	dumps()	将python对象编码成json字符串
    	loads()	解码json数据,返回python对象
    	dump()	将python对象编码成json数据并写入json文件中
    	load()	从json文件中读取数据并解码为Python对象
    
    • 1
    • 2
    • 3
    • 4

    这个是下载的数据
    在这里插入图片描述

    三、简单使用

    import requests
    import json
    import math
    
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
    }
    # 参数op=keyword表示按城市查询
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
    city = input('输入要查询的城市:')
    data = {
        'keyword': city,
        'pid': '',
        'pageIndex': '1',
        'pageSize': '10',
        'cname': ''
    }
    res = requests.post(url=url, data=data, headers=headers)
    
    res_json = res.json()
    row_counts = res_json['Table'][0]['rowcount']  # 记录总条数
    page_counts = math.ceil(row_counts / 10)  # 总页数,向上取整
    pageIndex = 1  # 当前页数
    while pageIndex < page_counts:
        pageIndex += 1
        data['pageIndex'] = str(pageIndex)  # 改变当前页码
        # Table对应的值不变,只需改变Table1的列表长度
        res_json['Table1'] += json.loads(requests.post(
            url=url, data=data, headers=headers).text)['Table1']
    
    # # 保存格式化后的JSON
    # indent  设置缩进空格数
    # ensure_ascii  对中文使用ASCII编码,默认为True
    # sort_keys  排序
    
    with open(r'./'+city+'.json', 'w', encoding='utf-8') as fp:
        res_formatted = json.dumps(
            res_json, indent=4, ensure_ascii=False, sort_keys=False)
        fp.write(res_formatted)
    
    print('ok')
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    20-spring mvc设计思想和源码解读-spring mvc 功能特性
    能源消耗监测管理系统:实现企业用能定额、降低成本节能管理
    java锁之ReentrantLock及Condition
    如何实现跨窗口通讯
    Jetbrains Fleet这十个快捷键,效率提高50倍
    BigDecimal精度丢失问题
    全国职业技能大赛云计算--高职组赛题卷④(容器云)
    上手python之while循环和for循环
    Caller 服务调用 - Dapr
    python如何用矩阵计算的方式,对两两元素进行自定义计算
  • 原文地址:https://blog.csdn.net/weixin_45289656/article/details/127837229