を作成するには、リスト内のJSON辞書を解析しよう:私は、ファイルにraw_input書き込みをするには、このコードを持っているSQLiteのデータベース
import json
a = raw_input("time meds taken?: format '@12:00' ")
b = raw_input("had food at that point?: format '#0/1' ")
ax = {"meds": a}
bx = {"food": b}
with open("chance1.json", "a") as f:
json.dump([ax, bx], f)
f.close()
私はこれで終わる:
[{"meds": "11:00"}, {"food": "0"}, {"meds": "12:45"}, {"food": "0"}, {"meds": "10:45"}, {"food": "0"}]
私は、取得する必要があります上記のデータをsqliteブラウザにコピーします。私は現在、次のコードを使用しています:
import json
import sqlite3
conn = sqlite3.connect ('meds.sqlite')
cur = conn.cursor()
cur.executescript('''
DROP TABLE IF EXISTS Meds;
DROP TABLE IF EXISTS Food;
CREATE TABLE Meds (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
time TEXT UNIQUE
);
CREATE TABLE Food (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
meds_id INTEGER,
status TEXT UNIQUE
);
''')
fname = raw_input('Enter file name: ')
if (len(fname) < 1) : fname = 'chance1.json'
str_data = open(fname).read()
json_data = json.loads(str_data)
for entry in json_data:
time = entry["meds"]
status = entry["food"]
print time, status'
はしかし、私はトレースバックKeyError: "food"
で終わります。どのようにこの問題を解決するために行くためのアドバイス、お願いしますか?私はこの部分を越えることができないので、コードが完成していないことに注意してください! (エントリが印刷されるときにファイルがUnicodeになる可能性もあります)。
ループ内のエントリを印刷しようとする – Benjamin
ループ内でエントリを印刷すると、各エントリに対して {u'meds:u'11:00 '}など – NamedN