我正在尝试从网站检索数据: https://api.coinmarketcap.com/v1/ticker/cardano/?convert=usd
代码段如下所示:
with urllib.request.urlopen("https://api.coinmarketcap.com/v1/ticker/cardano/?convert=USD") as url:
data = json.loads(url.read().decode())
print(data)
输出结果为:
[{'id':'cardano','name':'Cardano','symbol':'ADA','rank':'5','price_usd':'0.81872','price_btc':' 0.00005809','24h_volume_usd':'213316000.0','market_cap_usd':'21227011191.0','available_supply':'25927070538.0','total_supply':'31112483745.0','max_supply':'45000000000.0','percent_change_1h':'0.19' ,'percent_change_24h':'13 .13','percent_change_7d':' - 19.93','last_updated':'1515768856'}]
我的问题是,我该如何使用该文字?我可以把它变成一个更好看的清单吗?
提前致谢。
P.S。:我现在正在使用Python
答案 0 :(得分:2)
要获取price_usd元素,您可以使用data[0]['price_usd']
。
您可以使用pprint
模块以更好的格式打印它。
答案 1 :(得分:1)
您可以使用以下内容:
print(json.dumps(data, indent=4))
这将打破一个更容易阅读的拉动视图。但我不确定这会让您更容易使用脚本中的信息。 pprint是另一个很棒的模块。
答案 2 :(得分:-1)
我非常建议使用requests
库来执行此类操作。它具有灵活性,是一种事实上可以用来做任务的东西。
例如(我冒昧地使用这样的lib和iPython):
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'
如果您想将响应打印为字符串,则可以使用内置的lib json
(将其转储到文件或其他内容中):
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]"'