【问题标题】:json parsing from models django从模型 django 解析 json
【发布时间】:2012-11-19 16:21:14
【问题描述】:

我在 python 中发现了一些奇怪的行为,但我不明白为什么。

这就是我创建项目和列表的方式:

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

这是一个包含 3 个元素的列表的输出:

[{'url': 0, 'id': 0}, {'url': 1, 'id': 1}, {'url': 2, 'id': 2}]

如果我在 shell A 中使用这个字符串:

for v in data

我可以打印这 3 个对象。 N.B.len(data) 是 3。

现在我将这些数据作为文本字段存储在数据库中(是否正确?)。 当我检索对象时,我得到 len63

基本上 Django 将其视为一个字符串。我能做些什么?我试图做 json.load 但它不起作用。

【问题讨论】:

    标签: django json model


    【解决方案1】:

    您展示的示例中没有 JSON。你有一本 Python 字典。如果您随后“将其存储在文本字段中”(请注意,准确显示您的操作方式会很有帮助),您可能只是将其作为字符串转储到该字段中。它仍然不是 JSON,它现在是 Python dict 的字符串表示形式,这并不完全相同。 json.load 将“不起作用”(再一次,确切的错误消息会有所帮助),因为它不是 JSON。

    您可以在将其存储到数据库之前尝试使用json.dumps(my_dict),然后在退出时使用json.loads()。或者,使用您可能在 Google 快速搜索中找到的众多 JSONField 实现之一。

    【讨论】:

    • 我使用了一个 json 字段,它可以工作。我不明白我应该如何将字符串转换为正确的 json 以便能够将其存储在 textField 中。
    • 如上所述,使用json.dumps()
    • “似乎不起作用”没有帮助。究竟会发生什么?你到底在尝试什么?你有错误吗?
    • 我昨天试过了。问题是这个预期属性名称:第 1 行第 2 列(字符 2)。我不记得确切。我必须恢复项目并尝试一下。
    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2013-08-08
    • 2019-12-01
    • 1970-01-01
    • 2018-07-12
    • 2017-02-16
    • 1970-01-01
    • 2016-11-13
    相关资源
    最近更新 更多