PyPi的JSON API - 如何列出包?

Pio*_*dal 19 api json pypi

有一个用于PyPIJSON API,它允许获取包的数据:

http://pypi.python.org/pypi/<package_name>/json
http://pypi.python.org/pypi/<package_name>/<version>/json
Run Code Online (Sandbox Code Playgroud)

但是,是否可以通过GET调用获取所有PyPI包(或者,例如,最近的)的列表?

Sim*_*ser 18

最简单的方法是在PyPI上使用简单的索引,它列出了所有包而没有开销.然后,您可以通过对问题中提到的URL执行GET请求来单独请求每个包的JSON.


Gou*_*eau 12

我知道您要求从JSON API中执行此操作,但您可以使用XML-RPC api轻松获取此信息,而无需解析HTML.

try:
     import xmlrpclib
except ImportError:
     import xmlrpc.client as xmlrpclib

client = xmlrpclib.ServerProxy('https://pypi.python.org/pypi')
# get a list of package names
packages = client.list_packages()
Run Code Online (Sandbox Code Playgroud)

  • 自[2017-04](https://wiki.python.org/moin/PyPIXmlRpc?action=diff&rev1=43&rev2=44)以来,该页面的顶部显示:*PyPI的XMLRPC接口被认为是遗留的,不应该是用过的.*. (4认同)

Chr*_*son 8

PEP 691开始,如果您请求 JSON 响应,您现在可以通过 Simple API 获取此信息。

curl --header 'Accept: application/vnd.pypi.simple.v1+json' https://pypi.org/simple/ | jq
Run Code Online (Sandbox Code Playgroud)