Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用django将对象打包为json?_Django_Python 2.7 - Fatal编程技术网

使用django将对象打包为json?

使用django将对象打包为json?,django,python-2.7,Django,Python 2.7,我的观点遇到了障碍。 这里的“filtered_posts”是从模型返回的Django对象数组。 我在弄清楚如何获取我可以获取的文本数据时遇到了一点困难 稍后打包到json中,而不是使用序列化程序。序列化。。。 结果是数据被双重转义(一次由serializers.serialize转义,第二次由json.dumps转义)。 如果我直接使用MySQLdb库(换句话说,作为字符串,而不是对对象的引用),我不知道如何从数据库返回数据,返回数据的方式与返回数据的方式相同。如果我取出Serializer.

我的观点遇到了障碍。 这里的“filtered_posts”是从模型返回的Django对象数组。 我在弄清楚如何获取我可以获取的文本数据时遇到了一点困难 稍后打包到json中,而不是使用序列化程序。序列化。。。 结果是数据被双重转义(一次由serializers.serialize转义,第二次由json.dumps转义)。 如果我直接使用MySQLdb库(换句话说,作为字符串,而不是对对象的引用),我不知道如何从数据库返回数据,返回数据的方式与返回数据的方式相同。如果我取出Serializer.serialize,我会得到这些django对象的列表,但它甚至没有列出所有对象(将它们缩写为“…(剩余元素被截断)…”。 我不认为我应该,但是我应该使用uuUnicode_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


你要寻找的是。它以你期望的方式处理相关对象(你可以像在你的示例中那样包含一个嵌套对象,或者简单地让它为键输出相关对象的PK)。

Django Rest框架看起来非常整洁。我以前也使用过Tastypie


我还完成了不包含框架的RESTful API。当我这样做时,我在对象上定义
toJSON
方法,返回字典,并级联调用相关元素。然后调用
json.dumps()
在这方面,需要做大量的工作,这就是为什么框架值得一看的原因。

将对象作为字典返回的最佳方式是什么?“最佳”将稍微取决于您的问题域。我的观点是,确定应用程序的Javascript部分需要您的对象中的哪些属性。将这些属性复制到字典中,然后返回。或者,您可以使用字典理解返回“所有内容”:
{k:v for(k,v)in self.\u dict\u.items()(如果在中键入(v))(int、float、str、unicode、dict)和(不是k.startswith(“''))}
,但这可能会导致信息泄漏。
JSONtoReturn = json.dumps({                                                                                                                                       
    'lowest_id': user_posts[limit - 1].id,                                                                                                                        
    'user_posts': serializers.serialize("json", list(filtered_posts)),
})