<p>我非常推荐使用<code>requests</code>库来做这类事情。它非常灵活,是一种事实上的自由库,用于处理有要求的事情。你知道吗</p>
<p>例如(在其中我冒昧地使用了这样的lib和iPython):</p>
<pre><code>In [1]: import requests
In [2]: r = requests.get("https://api.coinmarketcap.com/v1/ticker/cardano/?convert=USD")
In [3]: r.status_code
Out[3]: 200
In [4]: r.json()
Out[4]:
[{'24h_volume_usd': '198429000.0',
'available_supply': '25927070538.0',
'id': 'cardano',
'last_updated': '1515772155',
'market_cap_usd': '20403048889.0',
'max_supply': '45000000000.0',
'name': 'Cardano',
'percent_change_1h': '-3.09',
'percent_change_24h': '5.94',
'percent_change_7d': '-22.7',
'price_btc': '0.00005650',
'price_usd': '0.78694',
'rank': '5',
'symbol': 'ADA',
'total_supply': '31112483745.0'}]
In [5]: usd = r.json()[0].get('price_usd')
In [6]: usd
Out[6]: '0.78694'
</code></pre>
<p>如果要将响应打印为字符串,可以使用内置的lib<code>json</code>(用于将其转储到文件或其他文件中):</p>
<pre><code>In [8]: import json
In [10]: json.dumps(r.text, indent=2)
Out[10]: '"[\\n {\\n \\"id\\": \\"cardano\\", \\n \\"name\\": \\"Cardano\\", \\n \\"symbol\\": \\"ADA\\", \\n \\"rank\\": \\"5\\", \\n \\"price_usd\\": \\"0.78694\\", \\n \\"price_btc\\": \\"0.00005650\\", \\n \\"24h_volume_usd\\": \\"198429000.0\\", \\n \\"market_cap_usd\\": \\"20403048889.0\\", \\n \\"available_supply\\": \\"25927070538.0\\", \\n \\"total_supply\\": \\"31112483745.0\\", \\n \\"max_supply\\": \\"45000000000.0\\", \\n \\"percent_change_1h\\": \\"-3.09\\", \\n \\"percent_change_24h\\": \\"5.94\\", \\n \\"percent_change_7d\\": \\"-22.7\\", \\n \\"last_updated\\": \\"1515772155\\"\\n }\\n]"'
</code></pre>