将列表序列化为JSON

2024-04-25 17:40:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在客户机和Django服务器之间发送信息,我想使用JSON来实现这一点。我正在发送简单的信息-字符串列表。我试着用django.core.serializers,但是当我用的时候,我得到了

AttributeError: 'str' object has no attribute '_meta'

这似乎只能用于Django对象。如何序列化简单的Python对象?


Tags: 对象django字符串core信息json列表客户机
3条回答

是的,但那你怎么处理django对象呢?简单的json往往会让他们窒息。

如果对象是单独的模型对象(例如,不是queryset),我偶尔会存储模型对象类型和pk,如下所示:

seralized_dict = simplejson.dumps(my_dict, 
                     default=lambda a: "[%s,%s]" % (str(type(a)), a.pk)
                     )

要反序列化,可以重建model.objects.get()引用的对象。如果您对dict所存储类型的对象详细信息感兴趣,这将不会有帮助,但如果您只需要知道涉及的是哪个对象,这将非常有效。

如果使用Python2.5,则可能需要导入simplejson

try:
    import json
except ImportError:
    import simplejson as json

您可以使用纯Python来执行此操作:

import json
list = [1, 2, (3, 4)] # Note that the 3rd element is a tuple (3, 4)
json.dumps(list) # '[1, 2, [3, 4]]'

相关问题 更多 >

    热门问题