使用Python/Django将MySQL数据库中的数据转换为JSON对象

0 投票
2 回答
5055 浏览
提问于 2025-04-15 23:21

我有一个名为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。

撰写回答