コードを実行するたびに、データがsignupdatabase.json
の内容を上書きします。jsonファイルにデータを永久に記録させるにはどうすればよいですか?
既存のファイルの内容を上書きしないようにするにはどうすればよいですか?
import json
with open('signupdatabase.json','w') as f:
json.dump('b',f)
json.dump('a',f)
print('good')
コードを実行するたびに、データがsignupdatabase.json
の内容を上書きします。jsonファイルにデータを永久に記録させるにはどうすればよいですか?
既存のファイルの内容を上書きしないようにするにはどうすればよいですか?
import json
with open('signupdatabase.json','w') as f:
json.dump('b',f)
json.dump('a',f)
print('good')
いくつかのオプションがあります。ユーザー名とパスワードは、プログラムの起動時にファイルからロードし、更新時に保存する単一のdict
に格納できます。パスワードを暗号化することは良い考えですが、この質問を超えています。
import json
import os
import getpass
db_filename = 'signupdatabase.json'
# create on first use
if not os.path.exists(db_filename):
with open(db_filename, 'w') as f:
json.dump({}. f)
# open database
with open(db_filename) as f:
db = json.load(f)
user = input("User Name: ")
pw = getpass.getpass()
db[user] = pw
# save database
with open(db_filename, 'a') as f:
db = json.dump(db, f)
append
モードでファイルを開き、すべての行の後'\n'
を追加します。
with open('signupdatabase.json','a') as f:
json.dump('b\n',f)
json.dump('a\n',f)
JSONファイルをデータベースとして使用しないでください。
このコードでは、閉じるとファイルが消去されません。 'print(open( 'signupdatabase.json')。read())'を追加し、 '' a "" b "'を得ました。それは問題があります.jsonオブジェクトの間に '\ n 'のような区切り文字を置かないので、後でそれらを解読する際に問題が生じるかもしれません。 – tdelaney
スクリプトを複数回実行すると、ファイルを切り捨てる「w」モードで開くため、既存のものが上書きされます。それはあなたが意味することですか? – tdelaney
yeap私はそれが既存のデータを上書きすることに気がついたので、どのようにこの問題を克服するのですか?とにかく助けてくれてありがとう – Ranchu