2011-11-13 36 views
5

Django numaralı uygulamada çalışıyorum. Bazı veri yapısı e.g. dictionaryMySQL db depolamaya çalışıyorum. Bu yüzden Python Pickle modülünü kullanıyorum. pickle.dumps(some_structure)'u kullanarak db'de sakladığımda iyi çalışıyor. DB alanım longblob modudur binary.UnpicklingError geçersiz yükleme anahtarı, '{'

Ama django model nesne alanını eriştiklerinde:

UnpicklingError: invalid load key, '{'. 

bana yardım edin, ben google denedim ama bana yardım does'nt:

obj = someModel.get(pk=1) 
some_structure = obj.field 
content = pickle.loads(some_structure) 

o hata aşağıdaki tutarsa Ayrıca, benzer bir Question var ama db içinde saklandığım gibi benim sorunum ile ilgili değil.

+0

Veritabanında saklamak için verilerinizi toplamanın doğru bir yol olmadığını belirtmek isterim. Verilerinizi veritabanında doğru bir şekilde saklamanız, verilerinizi tablolara ve alanlara dönüştürmeniz gerekir. –

+0

Veriler, karmaşık hiyerarşidedir (iç içe geçmiş sözlükler). Tablo ve alan biçiminde kaydedemiyorum. Veriler, daha sonra başka bir 'View'de django'da işlemem gereken bazı işlemlerin sonucudur. –

+1

Ardından JSON, turşudan daha iyi bir formattır. JSON çapraz platformdur, oysa turşu uygulamaya özgüdür. –

cevap

11

Bu hatayla karşılaştım ve bunun, aslında ilk turta getirilmemiş bir şeyi çıkarmayı denediğim için olduğunu keşfettim. Daha spesifik olarak, bir Python dict'ı, onu seçmeden, {'un ilk karakterine yol açacak şekilde depolamıştım.

Böylece

, sorunu çözmek için, denemek ya olmalıdır:

  • nesneler veri deposuna yerleştirilmeden önce salamura edildiğini doğrulama veri deposundan alma üzerine dize veya
  • unpickling Değil
İlgili konular