pokeapi的python客户端

pyroar的Python项目详细描述


PyRoar

  • 这个python包旨在提供对由Pokéapirestful服务提供的数据的简单访问。
  • 这个项目被认为是一种学习如何动态创建类和方法的方法。因此,没有显式地定义restful客户机类和检索数据的方法。相反,pokéapi服务需要它提供的资源,类和方法是实时创建的。这允许对服务进行适应性调整,但如果服务经历重大更改,可能会导致一些问题。

Pokéapi - The RESTful Pokémon API

  • Pokéapi(版权所有paul hallett)是一个restful api接口,用于处理与Pokémon视频游戏专营权相关的非常详细的数据。
  • 使用此restful服务,您可以使用有关神奇宝贝、它们的移动、能力、类型、蛋组等的信息。
  • 有关详细信息,请阅读Pokéapi V2 Documentation

Installation

克隆

通过在终端中执行,可以在本地计算机中克隆Pyroar:

$ git clone https://github.com/dapregi/PyRoar.git

下载项目后,您可以安装库:

$ cd pyroar
$ python setup.py install

Usage

Getting started

第一步是导入模块并初始化pockeclient:

>>>frompyroar.pokeclientimportPokeClient>>>pc=PokeClient()

第二步是为要查询的数据创建特定的客户端:

>>>pokemon=pc.get_pokemon()>>>berry=pc.get_berry()>>>machine=pc.get_machine()

现在,您可以通过提供查询id:

>>>pokemon.get_height('bulbasaur')7>>>pokemon.get_types('bulbasaur')[{u'slot':2,u'type':{u'name':u'poison',u'url':u'http://pokeapi.co/api/v2/type/4/'}},{u'slot':1,u'type':{u'name':u'grass',u'url':u'http://pokeapi.co/api/v2/type/12/'}}]>>>berry.get_growth_time('cheri')3>>>machine.get_move('1'){u'name':u'mega-punch',u'url':u'http://pokeapi.co/api/v2/move/5/'}

可以通过指定id或name来访问某些数据:

>>>pokemon.get_weight('bulbasaur')69>>>pokemon.get_weight('1')69

结果将作为json格式的数据进行检索。因此,可以按以下键进行查询:

>>>fortypeinpokemon.get_types('bulbasaur'):...printtype['type']['name']poisongrass>>>machine.get_move('1')['name']mega-punch

要检索资源的所有信息,只需使用方法“get()”

>>>pc.get('machine','1'){u'item':{u'url':u'http://pokeapi.co/api/v2/item/305/',u'name':u'tm01'},u'move':{u'url':u'http://pokeapi.co/api/v2/move/5/',u'name':u'mega-punch'},u'id':1,u'version_group':{u'url':u'http://pokeapi.co/api/v2/version-group/1/',u'name':u'red-blue'}}>>>machine.get('1'){u'item':{u'url':u'http://pokeapi.co/api/v2/item/305/',u'name':u'tm01'},u'move':{u'url':u'http://pokeapi.co/api/v2/move/5/',u'name':u'mega-punch'},u'id':1,u'version_group':{u'url':u'http://pokeapi.co/api/v2/version-group/1/',u'name':u'red-blue'}}

What can I ask for?

当动态创建客户机类和客户机方法时,了解对象方法的最佳方法是签出Pokéapi V2 Documentation或使用内置方法“get_methods()”:

>>>pc.get_methods()['get','get_ability','get_berry','get_berry_firmness','get_berry_flavor','get_characteristic','get_config','get_contest_effect','get_contest_type','get_egg_group','get_encounter_condition','get_encounter_condition_value','get_encounter_method','get_evolution_chain','get_evolution_trigger','get_gender','get_generation','get_growth_rate','get_item','get_item_attribute','get_item_category','get_item_fling_effect','get_item_pocket','get_language','get_location','get_location_area','get_machine','get_methods','get_move','get_move_ailment','get_move_battle_style','get_move_category','get_move_damage_class','get_move_learn_method','get_move_target','get_nature','get_pal_park_area','get_pokeathlon_stat','get_pokedex','get_pokemon','get_pokemon_color','get_pokemon_form','get_pokemon_habitat','get_pokemon_shape','get_pokemon_species','get_region','get_stat','get_super_contest_effect','get_type','get_version','get_version_group']>>>pokemon.get_methods()['get','get_abilities','get_base_experience','get_forms','get_game_indices','get_height','get_held_items','get_id','get_is_default','get_location_area_encounters','get_methods','get_moves','get_name','get_order','get_species','get_sprites','get_stats','get_types','get_weight']

Configuration

配置存储rest服务主机和api版本。

默认配置:

>>>pc.get_config(){'host':'pokeapi.co','version':'v2'}

可以使用configclient对象将自定义配置传递给pockeclient。支持json和yml文件:

>>>cc=ConfigClient('config.json')>>>pc=PokeClient(cc)

如果要更改配置,可以直接修改configclient对象:

>>>cc=ConfigClient()>>>pc=PokeClient(cc)>>>pc.get_config(){'host':'pokeapi.co','version':'v2'}>>>cc.version='v3'>>>pc.get_config(){'host':'pokeapi.co','version':'v3'}

WARNING

>;来自Pokéapi V2 Documentation

  • 这是一个consumption onlyapi-资源中只有http get方法可用。访问此API不需要身份验证。所有资源都是完全开放和可用的。
  • 访问此API不需要身份验证。所有资源都是完全开放和可用的。
    • 但是,对于每个IP地址,每天的请求数限制为300个。因此,一个IP地址每天可以调用Bulbasaur资源300次。整个数据集没有300个请求!这是为了防止我们的数据库在重载情况下崩溃。
  • 如果您要定期使用api,我建议您在服务上缓存数据。
    • 幸运的是,我们在每个资源上都提供了modified/created datetime stamp以便您可以检查更新(从而提高缓存效率)

License

派洛尔是free software。主要根据一般公共许可证(GPL)授权。 有关许可的更多详细信息,请查看license.txt文件。

Trivia

  • 这个项目是以神奇宝贝命名的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java置换相关算法   在Java中读取/打开文本文件   java为什么这段代码不适用于CodeEval?   java如何将日历转换为JSON   从txt文件中读取字符串并将其存储到java中的字符数组中   字符编码Java ResourceBundles umlauts搞砸了   java为什么hashmap会根据总大小而不是填充的存储桶调整大小   java如何将Excel单元格中的数字字符串读取为字符串(而不是数字)?   java Guava的LocalCache无法使用,为什么?   java有没有办法强制JVM在单个处理器或内核上运行   java Eclipse不安装软件   将字节转换为java字符串(可能是汉字)   Java正则表达式:提取函数名   JavaTestNG:如何从多个类中指定测试方法顺序?