2014-01-28 2 views
10

Существует JSON API for PyPI, которая позволяет получать данные для пакетов:JSON API для PyPi - как перечислить пакеты?

http://pypi.python.org/pypi/<package_name>/json 
http://pypi.python.org/pypi/<package_name>/<version>/json 

Однако, можно получить список всех пакетов PyPi (или, например, недавние) с GET вызов?

+0

Есть ли [Индекс пакетов] (https://pypi.python.org/pypi?%3Aaction=index) веб-страницу, которую вы ищете? – vaibhaw

+0

@vaibhaw Нет, это не json. У него есть данные, которые мне нужны, но у меня есть некоторые накладные расходы для получения и анализа. –

+0

Правда, это не json. Я думал, что вы ищете список всех пакетов. – vaibhaw

ответ

8

Самый простой способ сделать это - использовать simple index at PyPI, в котором перечислены все пакеты без накладных расходов. Затем вы можете запросить JSON каждого пакета отдельно, выполнив запрос GET на URL-адреса, указанные в вашем вопросе.

+0

Спасибо! (До того, как я разобрал [Index of Packages] (https://pypi.python.org/pypi?%3Aaction=index) с его накладными расходами для передачи данных.) –

8

Я знаю, что вы попросили способ сделать это из API 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() 
+0

С [2017-04] (https: // wiki .python.org/moin/PyPIXmlRpc? action = diff & rev1 = 43 & rev2 = 44), верхняя часть этой страницы говорит: * Интерфейс XMLRPC для PyPI считается устаревшим и не должен использоваться. *. – Anthon

Смежные вопросы