2014-01-06 31 views
1

故事背景:如何通過使用python將json存儲在django mysql數據庫中?

我想用Python編程語言來存儲在Django mysql數據庫JSON對象。 但我得到了一個錯誤。

配置:

  • 操作系統:Ubuntu的12.04 64位
  • 程序語言:Python的
  • 框架:Django的
  • 數據庫:MySQL的
  • 對象必須是店:JSON

代碼參考:

json_objects={ u'name': u'REF_1', u'text': u'it is apple', u'time': u'20131210T120039Z'} 

代碼:

- > models.py

from django.db import models 
class Messages(models.Model): 
     id   = models.AutoField(primary_key=True) 
     received  = models.DateTimeField(null=False) 
     name   = models.TextField() 
     data   = models.TextField() 
     text   = models.TextField() 
     word   = models.TextField() 

     def __unicode__(self): 
      return self.text 

- > views.py

from threechannels.models import Messages 
data_send_to_db=Messages.objects.create(received=datetime.strptime(json_objects["time"], "%Y%m%dT%H%M%SZ"),name=json_objects_post["name"],data=json_objects_dumps,text=json_objects["text"],word=related_words_hits) 

誤差我得到了:

DatabaseError:(1054, 「在 '字段列表' 未知列 '數據'」)

如果更改json_objects作爲對象= json.dumps(json_objects),我得到另一個錯誤是:串索引必須是一個不是字符串的整數。我認爲json_objects_post [「name」]會導致這個問題。

任何提示? 非常感謝。

+0

https://www.djangopackages.com/ grids/g/json-fields/ – alko

+0

是您的數據庫模式最新? (你有沒有運行syncdb,因爲你添加了數據字段)? – wgcrouch

回答

1

對我來說,看來你的json_objects是一個簡單的python字典。因此,這是一個有效的操作:

received=datetime.strptime(json_objects["time"], "%Y%m%dT%H%M%SZ") 

但是這個人是不是:

name=json_objects_post["name"] 

我不知道你想什麼,實現了與「彥博」,但你可以使用Python字典這樣它應該被用作:

name=json_objects["name"] 

也爲其他領域:

data=json_objects 

data=json.dumps(json_objects) 

等..

0

原始代碼:

data_send_to_db=Messages.objects.create(received=datetime.strptime(json_objects["time"], "%Y%m%dT%H%M%SZ"),name=json_objects_post["name"],data=json_objects_dumps,text=json_objects["text"],word=related_words_hits) 

變化:

data_send_to_db=Messages(received=datetime.strptime(json_objects["time"], "%Y%m%dT%H%M%SZ"),name=json_objects_post["name"],data=json_objects_dumps,text=json_objects["text"],word=related_words_hits) 

和它的作品......

相關問題