pickle プロパティを介して GAE Gql Datastore に保存しようとしている Python 辞書があります。
私はこの質問と回答に従おうとし ました.GAEに辞書のリストを保存します
しかし、以下のコードでは機能しません..リストに問題があるというエラーが表示されます
次のように、ピクル プロパティとデータ モデル クラスをセットアップします。
class PickleProperty(db.Property):
def get_value_for_datastore(self, model_instance):
value = getattr(model_instance, self.name, None)
return pickle.dumps(value)
def make_value_from_datastore(self, value):
return pickle.mloads(value)
class MDB(db.Model):
Name = db.StringProperty(required=True)
Times = PickleProperty()
created = db.DateTimeProperty(auto_now_add = True)
私のコードには、データを挿入して読み取る関数があります。
def m_time_manage(m=""):
if not m:
r = db.GqlQuery("select * from MDB")
else:
#find specific masjid requested
r = db.GqlQuery("select * from MDB where Name = %s" % (s))
#if masjid time data doesn't exist in db throw in placeholders...
if r is None:
times = {}
times['a'] = "8:49"
times['b'] = "10:19"
times_entry = MDB(Name="abc",Times=times)
times_entry.put()
r = db.GqlQuery("select * from MasjidDB")
return (r[0].Name, r[0].Times)
私の get 関数では、次のように m_time_manage() ftn を呼び出します。
(mName, times) = m_time_manage()
self.write(times)
pickle.loads と end of file エラーに何かがあるというこのエラーが表示されます...完全なエラーは次のとおりですが、Python に辞書を保存する方法が他にわかりません。
line 31, in make_value_from_datastore
return pickle.loads(value)
File "/usr/lib/python2.7/pickle.py", line 1382, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 880, in load_eof
raise EOFError
事前に助けてくれてありがとう