使用Python/Django将MySQL数据库中的数据转换为JSON对象
我有一个名为People的MySQL数据库,里面有这样的结构:<id,name,foodchoice1,foodchoice2>
。这个数据库里存储了一些人的信息,以及他们在聚会上想要的两种食物选择(比如说)。我想创建一个Python的网络服务,能够输出一个JSON对象。
输出的例子应该像这样:
{
"guestlist": [{
"id": 1,
"name": "Bob",
"choice1": "chicken",
"choice2": "pasta"
}, {
"id": 2,
"name": "Alice",
"choice1": "pasta",
"choice2": "chicken"
}],
"partyname": "My awesome party",
"day": "1",
"month": "June",
"2010": "null"
}
基本上,每位客人都被存储在一个叫做'guestlist'的字典里,里面包含了他们的食物选择。在这个JSON对象的最后,还有一些额外的信息,只需要提到一次就可以了。
目前,我有一个Django的模型/视图设置,模型会查询服务器,获取结果并把它们存储在变量中。视图应该调用模型,然后能够创建这个JSON对象,但我遇到了一些问题。我需要使用Django的标准模型/视图结构吗,还是有更简单的解决方案?
2 个回答
0
你可以把任何Django模型进行序列化,简单来说,就是把模型的数据转成一种可以存储或传输的格式。想了解更多,可以看看这个链接:http://docs.djangoproject.com/en/1.2/topics/serialization/#topics-serialization
这些序列化工具支持两种格式:xml和json,并且可以处理查询集(querysets)。如果你想深入了解,可以查看这个链接:http://docs.djangoproject.com/en/1.2/topics/serialization/#id2
另外一种方法是自己用ORM(对象关系映射)构建一个字典,然后用simplejson来进行序列化。
2
如果你需要的东西比简单地把某个查询结果以JSON格式输出更复杂一点,可以考虑使用django-piston,它可以帮助你自动生成API。