【问题标题】:Serialize an object in django not a model序列化 django 中的对象而不是模型
【发布时间】:2014-12-23 03:00:15
【问题描述】:

我想序列化一个对象,但这个对象不是模型,它只是一个常规类。我该怎么做呢

class Test:
    foo = []
    bar = 1
    a = tt()
class tt
    a = "Test"

【问题讨论】:

    标签: python json django serialization model


    【解决方案1】:

    您确定要让它成为对象吗?看起来作为嵌套字典会更好:

    {
        'foo': [],
        'bar': 1,
        'a': {
            'a': 'Test'
        }
    }
    

    这当然可以通过json.dumps()直接序列化为JSON。

    【讨论】:

      【解决方案2】:

      为了什么目的而序列化?通常我喜欢使用pickle 来序列化对象。

      import pickle
      my_obj = Test()
      #to save it to file
      pickle.dump( my_obj, open( "save.p", "wb" ) )
      
      #to read it from file
      my_obj_reloaded = pickle.load( open( "save.p", "rb" ) )
      

      【讨论】:

      • 我不想将对象保存到文件中。我只想为我的移动应用程序返回响应我成功序列化模型实例但我不想创建一个数据库表来返回一个简单的对象对象包含对象列表在java中我使用gson库这个库序列化所有东西。有没有办法做到这一点。
      • 如果您通过 API 返回此数据,您可能希望将其作为模型。当然,您可以使用docs.python.org/2/library/json.html json 库将其转换为 json,然后在响应中传递它,但 IMO 创建一个表并让其余 API 处理它。这就是它的用途。不创建表格并没有节省任何工作
      • 我试过这个方法,但是当我尝试一个非模型对象通过这个方法进行序列化时,它说 ....object is not serializable
      猜你喜欢
      • 2010-11-03
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2018-09-12
      • 2010-11-30
      相关资源
      最近更新 更多