如何从API响应中向用户打印某些文本

时间:2019-12-10 10:28:05

标签: python python-3.x api

很抱歉,标题很难理解。我有一个API,可以为我提供库存信息,但我只希望向用户显示某些文本。

{
    "Meta Data": {
        "1. Information": "Intraday (5min) open, high, low, close prices and volume",
        "2. Symbol": "MSFT",
        "3. Last Refreshed": "2019-12-09 16:00:00",
        "4. Interval": "5min",
        "5. Output Size": "Compact",
        "6. Time Zone": "US/Eastern"

这将返回Microsoft的股票,它每星期左右重置一次,每5分钟给出一次新读数。如果运行代码或仅使用通用逻辑,您将看到/知道有很多信息。假设我想获取上一次API刷新(编号3),然后向用户展示:

     componentDidMount() {
        fetch('http://localhost:3000/"my end point in api"')
            .then(function(response) {
                return response.json();
            })
            .then(function(jsonStr) {
                this.setState({ CourseTitle: jsonStr.course_title });
                alert(jsonStr.course_title);
            });
    }

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如jonrsharpe所述,您需要将响应解析为JSON,然后只选择您要查找的密钥:

import requests
import json
response = requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=5min&apikey=demo')
my_json = json.loads(response.text)
print(my_json["Meta Data"])

如果您的问题是仅从API中提取“元数据”字段,而不是整个响应,则除非API提供了该功能,否则您将无法提取

编辑:如Petru Tanas所述,您也可以使用response.json()而不是导入json模块:

import requests
response = requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=5min&apikey=demo')
my_json = response.json()
print(my_json["Meta Data"])