(四)Python中的CSV存储英雄数据

(四)Python中的CSV存储英雄数据

import csv
import requests

#获取所有英雄id,返回列表
def getHeroIdList():
    heroList = requests.get(herolist_url).json()['hero']
    return [ hero['heroId']    for hero in heroList]

#根据英雄id获取详情的方法
def saveHeroInfo():
    for id in heroIdList:
        heroInfo = requests.get(heroinfo_url.format(id)).json()['hero']
        #csv中写入数据
        with open("lol_data.csv",'a',newline='',encoding='utf-8') as file:
            csv.writer(file).writerow(
                [
                    heroInfo['heroId'],heroInfo['name'],heroInfo['alias'],
                    heroInfo['title'],heroInfo['roles'],heroInfo['hp'],
                    heroInfo['mp'],heroInfo['movespeed'],heroInfo['armor'],
                    heroInfo['attackrange'],heroInfo['hpregen'],heroInfo['attackdamage']
                ]
            )
        print("{}下载完成".format(heroInfo['name']))
if __name__ == '__main__':
    #main函数中的变量是全局变量(其他函数可以随意使用)
    herolist_url="https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
    heroinfo_url="https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js"
    heroIdList = getHeroIdList()
    with open("lol_data.csv", 'w', newline='', encoding='utf-8') as file:
        csv.writer(file).writerow(
            [
                'id','名称','英文名','标题','角色','血量','蓝量','移速','护甲','攻击范围','生命回复','攻击伤害'
            ]
        )
    #调用获取详情的方法
    saveHeroInfo()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。