Итерация по Python Dict для конкретных значений - PullRequest
0 голосов
/ 21 октября 2019

Я использую Python 3.6, и у меня есть словарь, подобный так:

{
    "TYPE": {
        "0": "ELECTRIC",
        "1": "ELECTRIC",
        "2": "ELECTRIC",
        "3": "ELECTRIC",
        "4": "TELECOMMUNICATIONS"
    },
    "ID": {
        "0": 13,
        "1": 13,
        "2": 13,
        "3": 13,
        "4": 24
    },
    "1/17/2019": {
        "0": 23,
        "1": 23,
        "2": 23,
        "3": 23,
        "4": 1
    },
    "DATE": {
        "0": "1/17/2019",
        "1": "2/28/2019",
        "2": "3/5/2019",
        "3": "3/28/2019",
        "4": "1/1/2019"
    }
}

Как я могу пройти через это и получить доступ к значениям только Utility Type и ID? Моя цель состоит в том, чтобы добавить их в список списков, например, так: [[ELECTRIC, 13], [ELECTRIC, 13], ...]

До этого момента я был в состоянии получить доступ к значениям следующим образом:

for key, value in addresses.items():
    if key == 'UTILITY TYPE':
        for k, v in value.items():
            print(v)
    elif key == 'ID':
        for k, v in value.items():
            print(v)

, но я могу 'не могу понять, как добавить значение v в мой список.

Ответы [ 2 ]

1 голос
/ 21 октября 2019
output = []
for key in d["TYPE"]:
    temp = [d["TYPE"][key], d["ID"][key]]
    output.append(temp)

ИЛИ

x = [[d["TYPE"][key], d["ID"][key]] for key in d["TYPE"]]
1 голос
/ 21 октября 2019

Решение

Это можно сделать с помощью библиотеки pandas. Кроме того, попробуйте pd.DataFrame(d), чтобы выяснить, может ли это быть для вас полезным (поскольку я не знаю ваш последний вариант использования).

import pandas as pd

# d is your dictionary
df = pd.DataFrame(d).T
columns = df.columns
labels = df.index.tolist()
print('labels: {}\n'.format(labels))
[df[x].tolist() for x in columns]

Вывод :

labels: ['TYPE', 'ID', '1/17/2019', 'DATE']

[['ELECTRIC', 13, 23, '1/17/2019'],
 ['ELECTRIC', 13, 23, '2/28/2019'],
 ['ELECTRIC', 13, 23, '3/5/2019'],
 ['ELECTRIC', 13, 23, '3/28/2019'],
 ['TELECOMMUNICATIONS', 24, 1, '1/1/2019']]

Фиктивные данные

d = {
    "TYPE": {
        "0": "ELECTRIC",
        "1": "ELECTRIC",
        "2": "ELECTRIC",
        "3": "ELECTRIC",
        "4": "TELECOMMUNICATIONS"
    },
    "ID": {
        "0": 13,
        "1": 13,
        "2": 13,
        "3": 13,
        "4": 24
    },
    "1/17/2019": {
        "0": 23,
        "1": 23,
        "2": 23,
        "3": 23,
        "4": 1
    },
    "DATE": {
        "0": "1/17/2019",
        "1": "2/28/2019",
        "2": "3/5/2019",
        "3": "3/28/2019",
        "4": "1/1/2019"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...