python - 如何从 JSON 打印特定内容

标签 python json

这是 Python 2 上从 API 请求数据的代码

 results = json.load(urllib.urlopen("https://www.kimonolabs.com/api/ano64pm6?apikey=9ummN7C6KMHu9aErm49ixoy2ZySmaKCm"))
 print results

这会打印

{u'count': 27,
 u'frequency': u'Daily',
 u'lastrunstatus': u'success',
 u'lastsuccess': u'Fri Feb 27 2015 21:33:02 GMT+0000 (UTC)',
 u'name': u'mmoga',
 u'newdata': True,
 u'nextrun': u'Sat Feb 28 2015 21:33:03 GMT+0000 (UTC)',
 u'results': {u'collection1': [{u'price': u'\xa3\xa03.47'},
   {u'price': u'\xa3\xa05.20'},
   {u'price': u'\xa3\xa06.92'},
   {u'price': u'\xa3\xa08.63'},
   {u'price': u'\xa3\xa010.34'},
   {u'price': u'\xa3\xa012.04'},
   {u'price': u'\xa3\xa013.73'},
   {u'price': u'\xa3\xa015.42'},
   {u'price': u'\xa3\xa017.09'},
   {u'price': u'\xa3\xa025.59'},
   {u'price': u'\xa3\xa034.05'},
   {u'price': u'\xa3\xa042.48'},
   {u'price': u'\xa3\xa050.88'},
   {u'price': u'\xa3\xa059.23'},
   {u'price': u'\xa3\xa067.56'},
   {u'price': u'\xa3\xa075.85'},
   {u'price': u'\xa3\xa084.11'},
   {u'price': u'\xa3\xa0100.73'},
   {u'price': u'\xa3\xa0117.27'},
   {u'price': u'\xa3\xa0133.75'},
   {u'price': u'\xa3\xa0150.17'},
   {u'price': u'\xa3\xa0166.51'},
   {u'price': u'\xa3\xa0182.79'},
   {u'price': u'\xa3\xa0198.99'},
   {u'price': u'\xa3\xa0215.13'},
   {u'price': u'\xa3\xa0231.20'},
   {u'price': u'\xa3\xa0247.28'}]},
 u'thisversionrun': u'Fri Feb 27 2015 21:32:48 GMT+0000 (UTC)',
 u'thisversionstatus': u'success',
 u'version': 3}

我需要调用价格并获取它旁边的 float 。到目前为止我已经尝试过一些非常简单的事情,例如

print requests[price]

还有

print requests[results/collection1/price]

我不知道如何做到这一点,并且是编程新手,我找不到任何有用的教程,因此只要指向正确的方向就会有所帮助

最佳答案

import  requests
results = requests.get("https://www.kimonolabs.com/api/ano64pm6?apikey=9ummN7C6KMHu9aErm49ixoy2ZySmaKCm").json()
print([x["price"] for x in results["results"]["collection1"]])
['£\xa03.47', '£\xa05.20', '£\xa06.92', '£\xa08.63', '£\xa010.34', '£\xa012.04', '£\xa013.73', '£\xa015.42', '£\xa017.09', '£\xa025.59', '£\xa034.05', '£\xa042.48', '£\xa050.88', '£\xa059.23', '£\xa067.56', '£\xa075.85', '£\xa084.11', '£\xa0100.73', '£\xa0117.27', '£\xa0133.75', '£\xa0150.17', '£\xa0166.51', '£\xa0182.79', '£\xa0198.99', '£\xa0215.13', '£\xa0231.20', '£\xa0247.28']

可以直接使用requests获取json调用 .json()

print(results["results"]["collection1"])

[{'price': '£\xa03.47'}, {'price': '£\xa05.20'}, {'price': '£\xa06.92'}, {'price': '£\xa08.63'}, {'price': '£\xa010.34'}, {'price': '£\xa012.04'}, {'price': '£\xa013.73'}, {'price': '£\xa015.42'}, {'price': '£\xa017.09'}, {'price': '£\xa025.59'}, {'price': '£\xa034.05'}, {'price': '£\xa042.48'}, {'price': '£\xa050.88'}, {'price': '£\xa059.23'}, {'price': '£\xa067.56'}, {'price': '£\xa075.85'}, {'price': '£\xa084.11'}, {'price': '£\xa0100.73'}, {'price': '£\xa0117.27'}, {'price': '£\xa0133.75'}, {'price': '£\xa0150.17'}, {'price': '£\xa0166.51'}, {'price': '£\xa0182.79'}, {'price': '£\xa0198.99'}, {'price': '£\xa0215.13'}, {'price': '£\xa0231.20'}, {'price': '£\xa0247.28'}]

results["results"]["collection1"] 返回一个字典列表,然后在迭代时使用键 price 从每个字典中获取价格列表。

关于python - 如何从 JSON 打印特定内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775481/

相关文章:

python - 您如何通过 Python(而不是通过 Twisted)运行 Twisted 应用程序?

javascript - 使用纯 JS 对 getJson 进行排序 - 无插件

php - 我如何使用 php 生成 fancytree json 格式

java - 如何将参数添加到wiremock中的 stub 响应主体中?

json - Azure:自动化帐户的 SKU 属性值,集中模板文档在哪里?

python - 如何使用Python将FFT(快速傅里叶变换)转换为极坐标变换?

python - 如何解决 matplotlib 中的溢出错误?

python - 如何获取 "subsoups"并连接/加入它们?

python - Python 类如何引用其子类之一或其实例?

java - 使用 Jackson 反序列化为 Map