python AttributeError';dict';对象没有属性

python AttributeError';dict';对象没有属性,python,django,django-database,Python,Django,Django Database,我发现以下错误: AttributeError at /filterrule/createresultset/ 'dict' object has no attribute 'filter_query_json' 代码如下: from django.db import connections def fetch_filter_rule_sql_from_ui_db(filter_rule_id): with connections['frontend'].cursor() as cu

我发现以下错误:

AttributeError at /filterrule/createresultset/
'dict' object has no attribute 'filter_query_json'
代码如下:

from django.db import connections

def fetch_filter_rule_sql_from_ui_db(filter_rule_id):
    with connections['frontend'].cursor() as cursor:
        query = "SELECT id, filter_query_json FROM dmf_filter_rules WHERE id=%s LIMIT 1"
        cursor.execute(query, [filter_rule_id])
        filter_rule_sql_json = dictfetchall(cursor)[0].filter_query_json
        # filter_rule_sql_json = dictfetchall(cursor)[0][filter_query_json]
        return filter_rule_sql_json

def dictfetchall(cursor):
    "Return all rows from a cursor as a dict"
    columns = [col[0] for col in cursor.description]
    return [
        dict(zip(columns, row))
        for row in cursor.fetchall()
    ]
dictfetchall(游标)[0]
的输出为:

{
    "id": 1,
    "filter_query_json": "{\"request_id\":\"341\",\"match_status\":\"1\",\"verdict\":\"Non Match\",\"matched\":\"s_vs_r_image_class_match\"}"
}
对象看起来很好,我也确认了
filter\u query\u json
属性


缺少什么?

如果对象是内置的int
dictype
,则只能获取直线值。要解决这个问题,解决方案可以是

filter_rule_sql_json = dictfetchall(cursor)[0].get('filter_query_json')

如果您的key
filter\u query\u json
不存在,则方法
.get(key)
将返回
None

如果对象是内置int
dictype
,则只能获取直接值。要解决这个问题,解决方案可以是

filter_rule_sql_json = dictfetchall(cursor)[0].get('filter_query_json')

如果您的key
filter\u query\u json
不存在,那么方法
.get(key)
将返回
None

将行更改为
filter\u rule\u sql\u json=dictfetchall(cursor)[0]['filter\u query\u json']


尽管我建议使用django的数据库api,而不是编写原始sql查询

将行更改为
filter\u rule\u sql\u json=dictfetchall(cursor)[0]['filter\u query\u json']


尽管我建议使用django的数据库api,而不是在输出对象内部编写原始sql查询:
filter\u query\u json
@roganjosh我在输出对象内部的意思是:
filter\u query\u json