2014-01-28 37 views
10

有一個JSON API for PyPI允許獲得用於封裝數據:PyPi的JSON API - 如何列出軟件包?

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,它列出了所有沒有開銷的包。然後,您可以通過對您的問題中提到的URL執行GET請求來單獨請求每個軟件包的JSON。

+0

謝謝! (在我解析之前[包的索引](https://pypi.python.org/pypi?%3Aaction=index)及其數據傳輸開銷。) –

8

我知道你問過從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),該頁面頂部顯示:* PyPI的XMLRPC接口被認爲是遺留的,不應該被使用。 – Anthon

相關問題