【发布时间】:2022-01-01 14:09:33
【问题描述】:
问题:
尝试使用 Django ORM 从包含 JSON 字段的表中获取记录,我正在使用以下行:
test_object = House.objects.get(id=301)
错误
TypeError: JSON 对象必须是 str、bytes 或 bytearray,而不是 dict
可能的问题
注意到之前的开发人员更新了表格中 JSON 字段的格式,似乎 JSON 格式错误。用于格式化 JSON 列的脚本:
for i in data:
jsonstring = json.dumps(i.result)
new_clear = jsonstring.replace("\\", "")
new_clear = jsonstring.replace("NaN", "null")
i.result = json.loads(new_clear)
i.save()
评论
在 pgAdmin 中,JSON 字段看起来不错并且格式正确,请参阅下面的 JSON 的部分副本:
{"owner_id": 45897, "first_name": "John", "last_name": "DNC", "estate_id": 3201, "sale_date": "3/18/19", "property_street": "123 main st", "property_city": "Miami", "property_state": "FL", "property_zipcode": 33125, "Input_First_Name": "John", "Input_Last_Name": "DNC"}
我想知道如何处理这个 JSON 字段以便查询对象。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
检查 json_data 的类型。如果它已经是一个字典,那么不要 json 解码...
-
嗨,我只是从 shell 中使用 get 进行查询:House.objects.get(id=301)。我没有运行任何自定义逻辑,只想获取对象。谢谢
-
您将字典传递给需要字符串的函数
标签: python json django django-models orm