преобразовать фрейм данных в словарь, исключая идентификатор - PullRequest
0 голосов
/ 24 марта 2020

Моя цель - создать вложенный словарь, но я получаю случайное число в качестве родительского ключа. Это то, что я зашел так далеко:

result = result[['column1', 'column2','column3']]
result = result.to_dict('index')

all_result = {'ERR_CODE' : 0, 'ERR_MESSAGE' :'No error'}
all_result['LOC'] = result

Полученный результат:

{
  "ERR_CODE": 0,
  "ERR_MESSAGE": "No error",
  "LOC": {
    "792": {  #random number or possibly the row id
       "column1": "abc",
       "column2": "123",
       "column3": "def"
    }
  }
}

Ожидаемый результат:

{
  "ERR_CODE": 0,
  "ERR_MESSAGE": "No error",
  "LOC": {
    "column1": "abc",
    "column2": "123",
    "column3": "def"
  }
}

Я не могу использовать pop(792) в этом случае, потому что число будет случайным. Могу ли я использовать pop, используя индекс? или любые другие альтернативы ..

ОБНОВЛЕНИЕ Приведенный ответ решает вышеуказанную проблему, но что, если в результате будет несколько дочерних элементов, например (ожидаемый результат):

{
  "ERR_CODE": 0,
  "ERR_MESSAGE": "No error",
  "LOC": {
    "column1": "abc",
    "column2": "123",
    "column3": "def"
  },
  {
    "column1": "abc",
    "column2": "123",
    "column3": "def"
  }
}

Я изменил в зависимости от решения на [0:], так как он дает мне следующее:

{
  "ERR_CODE": 0,
  "ERR_MESSAGE": "No error",
  "LOC": [                    # list
  {
    "column1": "abc",
    "column2": "123",
    "column3": "def"
  },
  {
    "column1": "abc",
    "column2": "123",
    "column3": "def"
  }
 ]                           #list
}

Я не хочу, чтобы [ ] в результате.

1 Ответ

0 голосов
/ 24 марта 2020

вы можете вернуть записи в виде списка

result = list(result.to_dict("index").values())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...