簡體   English   中英

Python Dict轉換

[英]Python Dict Transform

我一直在嘗試轉換我擁有的數據集時遇到一些奇怪的困難。

我目前有一個來自以下形式的字典:

data['content']['answers']

我想將['answers']附加到列表的第一個元素上,如下所示:

data['content'][0]['answers']

但是,當我嘗試這樣創建它時,我得到了一個空的數據集。

data['content'] = [data['content']['answers']]

我一生無法弄清楚自己在做什么錯。

編輯:這是開頭的JSON

我有:

{
"content" : {
              "answers" : {
                "3" : {

但我需要這樣:

    {
"content" : [
              {
                 "answers" : {
                  "3" : {

謝謝

您可以使用字典理解功能(Python中最優雅,功能最強大的功能之一)來完成您想做的事情。

在您的情況下,以下方法應該起作用:

d = {k:[v] for k,v in d.items()} 

您在問題中提到了JSON。 與其使用自己的解析器(似乎您可能正在嘗試這樣做),不如考慮使用json模塊。

如果我正確理解了這個問題,聽起來您需要data['contents']等於一個列表,其中每個元素都是data['contents']先前包含的詞典?

我相信這可能有效(在python 2.7和3.6中有效):

# assuming that data['content'] is equal to {'answers': {'3':'stuff'}}

data['content'] = [{key:contents} for key,contents in data['content'].items()]

>>> [{'answers': {'3': 'stuff'}}]

列表推導將保留原始內容中每個字典的字典contents ,並將字典作為列表返回。

Python 2文檔: https//docs.python.org/2/tutorial/datastructures.html#list-comprehensions

Python 3文檔: https//docs.python.org/3/tutorial/datastructures.html#list-comprehensions

最好是給我們一個“數據”(字典的樣子),嘗試運行什么代碼,得到什么結果以及除了什么以外的具體示例。 我想我有個主意,但不能確定。

您的問題不清楚,也沒有明確的例子。

順便說一句,這樣的事情可以為您服務嗎?

data_list = list()
for content in data.keys():
    data_list.append(data[content])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM