Как вытащить из ключей только определенные предметы? - PullRequest
0 голосов
/ 01 октября 2018

Я вытягиваю из Alpha Vantage API.Если бы я только хотел вытащить цену закрытия из этого словаря на все дни.Что я делаю?Я не хочу печатать, но хочу сохранить новый словарь, который имеет только цену закрытия:

{
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and Volumes",
        "2. Symbol": "MSFT",
        "3. Last Refreshed": "2018-09-28",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2018-09-28": {
            "1. open": "114.1900",
            "2. high": "114.5700",
            "3. low": "113.6800",
            "4. close": "114.3700",
            "5. volume": "21647811"
        },
        "2018-09-27": {
            "1. open": "114.7800",
            "2. high": "114.9100",
            "3. low": "114.2000",
            "4. close": "114.4100",
            "5. volume": "19091299"
        },
        "2018-09-26": {
            "1. open": "114.4700",
            "2. high": "115.0550",
            "3. low": "113.7400",
            "4. close": "113.9800",
            "5. volume": "19352025"
        },
        "2018-09-25": {
            "1. open": "114.8000",
            "2. high": "115.1000",
            "3. low": "113.7500",
            "4. close": "114.4500",
            "5. volume": "22668014"
        },

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете использовать словарь понимания и dict.items.Поскольку вы имеете дело с числовыми данными, вы, вероятно, также захотите преобразовать в float.С учетом входного словаря d:

closes_dict = {k: float(v['4. close']) for k, v in d['Time Series (Daily)'].items()}

{'2018-09-28': 114.37,
 '2018-09-27': 114.41,
 '2018-09-26': 113.98,
 '2018-09-25': 114.45}
0 голосов
/ 01 октября 2018

Здесь аргумент dict - это то, что вы получаете от API.Это вернет {'2018-09-28': ('114.1900', '114.3700'), '2018-09-27': ('114.7800', '114.4100'), '2018-09-26': ('114.4700', '113.9800'), '2018-09-25': ('114.8000', '114.4500')} Если вы чего-то не понимаете или вам нужна помощь, пожалуйста, не стесняйтесь спрашивать в комментариях.

def getCloseOpen(alphaAPI):
    days = alphaAPI["Time Series (Daily)"]
    targData = {}
    for day,data in days.items():
        targData[day] = (data["1. open"],data["4. close"])
    return targData
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...