私はPythonを初めて使いました。Python 2.7.11でcsvファイルとしてリストを保存してロードする
bank = [["matt", "passw", 500, {apple:3}], ["luke", "passw123", 800, {google:2}]]
第一パラメータ:名前(string
)
第二パラメータ:パスワード(string
)
は、3番目のパラメータ:現金私はこのようなものになることができbank
と呼ばれるリストを持っています量(float
)
第4パラメータ:辞書(動的、私は他の機能とキーと値を変更することができます)(私はしないそれを保存する方法を知っている、あなたが私にそれを行う方法を教えていただけたら、私はそれを感謝し、私はコードにコメントした)。
bank
は空白のリストで、add_account
という名前の関数では、パラメータとして新しいリストを追加します。私の目標は.csvファイルを作成し、その中にbank
を保存し、プログラムを終了すると、前回保存したbank
のすべての情報を.csvファイルにロードしたいと思っています。 は、これらはあなたが私はあなたを伝えることについてだ問題を解決するために知っておく必要がある関数である:
import csv
def loaddata():
f = open('bank.csv','r')
reader = csv.reader(f)
for row in reader:
bank.append(row)
f.close()
def savedata(bank):
f = open('bank.csv','a')
for account in bank:
print account
#4th parameter is wrong, i don't know how to save the dicionary
st = '%s,%s,%f,%s\n' % (account[0], account[1], account[2], account[3])
f.write(st)
f.close()
bank = []
try:
bank.append(loaddata())
except IOError:
print "creating bank"
def add_account(bank):
new=create_account()
bank.append(new)
def create_account():
new_account = [0,0,0,0]
new_account[0] = raw_input('name ')
new_account[1] = raw_input('psw ')
new_account[2] = input('balance ')
new_account[3] = {}
return new_account
私はsavedata(bank)
を起動ファイルに保存し、その後、私はloaddata(bank)
を起動するときに問題があります以前のbank
データを復元します。bank
は1つの文字列として保存されていました。たとえば、3番目と4番目のパラメータは文字列として表示され、floatやdictionaryではなく、使用できません。また、私がsavedata(bank)
を2回目に呼び出そうとすると、それは動作しません(3番目のパラメータが文字列の代わりに浮動小数点数を要求するため)。どうすれば解決できますか?前もって感謝します。
最後のもの:savedata(bank)
関数は、 "st"で渡されたもの以外のnone
というオブジェクトを作成します。理由はわかりません。
これは完全に機能し、完全に説明しました。 – kdpkke