2017-03-31 10 views
0

私が持っているデータセットを変換しようとすると、奇妙な問題が発生しています。Python Dict Transform

私は現在、次のようにフォームからの辞書を持っている:

data['content']['answers'] 

私は[「答え」]を持っていると思いますので、のようなリストの最初の要素に追加:

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

しかし、それを作成しようとすると、空のデータセットが取得されます。

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

私は私の人生のために私が間違っているのかを把握することはできません。

編集:ここでは開口部のJSONがある

私が持っている:

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

しかし、私はそれがする必要があります:あなたはあなたがやりたいことができ

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

おかげ

+2

あなたは辞書・オブ・辞書を持っている、とあなたは辞書-のに変換したいとし – kilojoules

+1

私たちに繰り返し可能な例を表示-list-of-dict – smci

+0

はい、私はいくつかの情報を追加しました – CareFree

答えて

2

辞書の理解(これはPythonで最もエレガントで強力な機能は)

あなたの場合は、次のように動作するはずです:。

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

あなたは、あなたの質問にJSONを述べました。独自のパーサー(かもしれない、のように思われる)を動かすのではなく、jsonモジュールの使用を検討してください。

0

「データ」(辞書がどのように見えるか)、実行しようとするコード、取得した結果、およびあなた以外のものの具体例を教えてください。私は考えがあるとは思うが確信が持てない。

+0

上記の情報を追加しました。 – CareFree

+0

これは答えではなく、コメントです。コメントは回答として投稿しないでください。 –

0

あなたの質問は明確ではなく、明示的な例がありません。

Btw、これはあなたのために働くことができますか?

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

私が正しく質問を理解している場合は、各要素が以前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 DOC:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions

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