我在蟒蛇身上发现了一些奇怪的行为,但我不明白为什么。
我是这样创建项目和列表的:
def createItemJson(self,id,url):
ret={}
ret['id']=id
ret['url']=url
return ret
def createListJson(self,i):
ret_l = []
for i in range(0,i,1):
ret_l.append(self.createItemJson(i, i))
return ret_l
这是由三个元素组成的列表的输出:
[{'url': 0, 'id': 0}, {'url': 1, 'id': 1}, {'url': 2, 'id': 2}]
如果我拿着这条线,在壳A里做:
for v in data
我能打印出这三个物体。注:len(data)
是3.
现在,我将这些数据存储在db中作为textfield (它正确吗?)当我检索对象时,我得到了值为len
的63。
基本上Django把它看作是一个字符串。我能做什么?我试着做json.load,但它不起作用。
发布于 2012-11-19 16:32:13
在您显示的示例中没有JSON。你有一本Python字典。如果然后“将其存储在文本字段中”(请注意,这将有助于显示您是如何做到的),您可能只是将其作为字符串转储到该字段中。它仍然不是JSON,它现在是Python的字符串表示,这不是完全相同的事情。json.load
将“不能工作”(同样,准确的错误消息可能会有帮助),因为它不是JSON。
您可以尝试在将json.dumps(my_dict)
存储到数据库之前使用它,在输出时使用json.loads()
。或者,使用您可能在Google快速搜索中找到的众多JSONField实现之一。
https://stackoverflow.com/questions/13457914
复制相似问题