python -вложенный-словарь - ключи - PullRequest
0 голосов
/ 05 августа 2020

Я повторяю вложенный словарь, используя метод dict.keys (). код работает хорошо, если словарь вложен, однако, если словарь не вложен, он выдает ошибку (т.е.

{"a":{1:'i'}}

для приведенного выше словаря код работает нормально, но после словаря он не работает

{"a":1}

В моей итерации я использую sh, чтобы не выдавать ошибку, если в словаре нет дополнительных ключей. по требованию мы можем передавать вложенные или невложенные словари.

Ниже приведен пример кода:

global n
n=0
df = pd.DataFrame(index = np.arange(10), columns = ['column0'])
def iterate_dict(dict):
    global n
    for j in dict.keys()
        df[n] = j
        n = n+1
    return dict
#function call
iterate_dict({"a":1})

Сообщение об ошибке:

AttributeError: 'str' object has no attribute 'keys'

Спасибо за помощь.

1 Ответ

0 голосов
/ 05 августа 2020

Вы, должно быть, пробовали вызвать iterate_dict({"a":1}) со строковым аргументом, например iterate_dict("{a:1}"), что дает ошибку AttributeError: 'str' object has no attribute 'keys'. Попробуйте использовать:

returned_dict = iterate_dict({"a": 1})

Он должен работать.

Добавьте сюда рабочий код:

import pandas as pd
import numpy as np

global n
n = 0
df = pd.DataFrame(index=np.arange(10), columns=['column0'])


def iterate_dict(dict):
    global n
    for j in dict.keys():
        df[n] = j
        n = n + 1
    return dict


# function call
iterate_dict({"a": 1})
print(df.head())

ВЫХОД

  column0  0
0     NaN  a
1     NaN  a
2     NaN  a
3     NaN  a
4     NaN  a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...