2017-01-15 11 views
-2

初心者向けの質問で申し訳ありません。ユーザーの入力辞書データを.pyファイルに保存する方法

私は、ローカルデータベースのようにしたい友達のための小さなプログラムを書いています。カテゴリに分けられたメニューがあります。自分自身のデータを保存できるように、「関数を追加」を追加しようとしています。

データは辞書(および分離されたファイル)上にあり、すべて正常に機能しますが、プログラムが終了するとすべてが失われ、保存方法を知りたいと思います。ここで

は簡単な例として、小さな関数です:

import kingdomlist 

def adding_kingdom(): 
    print("Take this as an example: NAME : CONTENT") 
    user_name = input("Tell me the name of the kingdom: ") 
    if user_name in kingdomlist.kingdom_list: 
     print("This kingdom is already on the list") 
     adding_kingdom() 
    user_content = input("Tell me the content of %s: " % user_name) 
    kingdomlist.kingdom_list[user_name] = user_content 

これはkingdomlist.pyに格納されているものです。

kingdom_list = { 
"kingdom": "information", 

} 

私はプログラムがある場合でも、この情報を保つために何をすべき閉まっている?

import json 

def adding_kingdom_full(): 
    user_name = input("\nTell me the name of the kingdom/continent: ") 
    user_content = input("\nTell me the content of %s: " % user_name) 
    kingdom_list.update({ 
     (user_name): (user_content) 
    }) 
    json.dumps(kingdom_list) 
    with open('kingdomdata.json', 'w') as fs: 
     json.dump(kingdom_list, fs) 

EDITは:何も起こらない機能、例の内部で使用しているときだけ、それは非常に単純な例で働いたaltought、JSONを使用する方法についていくつかの記事を読んで、私はそれが私のスクリプトで動作させることができません

私は何が間違っていますか?助けのための

+1

可能な重複: //stackoverflow.com/questions/28055565/how-to-serialize-a-python-dict-to-text-in-a-human-readable-way) –

+0

pythonのソースコードを生成してデータを保存しようとしないでください...それはちょうど狂っている。データベースを使用するか、簡単に消費できるテキスト形式にデータをシリアル化します。私は、データを表すためにjsonまたはyaml(またはcsv)を考慮します。 –

+0

jsonについて検索した後に編集したばかりです。助けてくれてありがとう!私はまだ何が間違っていますか? –

答えて

0

おかげで、私はそれがこのコードを使用して動作させるための管理:

kingdom_list.update({ 
    "%s" % user_name: "%s" % user_content 
    }) 
with open('data/kingdomdata.json', 'w') as data_file: 
    save = json.dumps(kingdom_list) 
    data_file.write(save) 
[人間が読めるように、テキストにPythonの辞書をシリアル化するには?](HTTPの
関連する問題