【问题标题】:How to return raw sql queries as json objects?(Django)如何将原始 sql 查询作为 json 对象返回?(Django)
【发布时间】:2022-01-03 04:16:29
【问题描述】:

我正在使用以下函数将 sql join 查询显示为 json:

def toggle_query(request,id):
    obj = DibbsSpiderDibbsMatchedProductFieldsDuplicate.objects.raw('''SELECT *
    FROM dibbs_spider_solicitation
    JOIN dibbs_spider_dibbs_matched_product_fields_duplicate
    ON dibbs_spider_solicitation.nsn = {nsn};'''.format(nsn=id))

    context = serializers.serialize('json',obj)

    return JsonResponse(context,safe=False)

这会将数据显示为:

"[{\"model\": \"dibbs_spider.dibbsspiderdibbsmatchedproductfieldsduplicate\", \"pk\": 39, \"fields\": {\"nsn\": \"1650011162908\", \"nsn2\": \"6550015746831\", \"cage\": \"34807\", \"part_number\": \"6903A-J\", \"company_name\": null, \"supplier\": \"GraingerOM\", \"cost\": \"18.16\", \"list_price\": \"19.12\", \"gsa_price\": null, \"hash\": \"665\", \"nomenclature\": \"HOUSING, CONTROL MOD\", \"technical_documents\": \"Tech Docs\", \"solicitation\": \"SPE2DS22T1575\", \"status\": \"Awarded  \", \"purchase_request\": \"0091648844\\nQty: 5\", \"issued\": \"2021-12-09\", \"return_by\": \"2021-12-14\", \"file\": \"https://dibbs2.bsm.dla.mil/Downloads/RFQ/5/SPE2DS22T1575.PDF\", \"vendor_part_number\": \"269P71\", \"manufacturer_name\": \"LAMOTTE\", \"product_name\": \"Reagent Tablet Type 0 to 4 ppm Range\", \"unit\": \"EA\"}}, {\"model\": 

如何去掉这里不属于数据部分的\符号?

【问题讨论】:

  • 您的代码可能容易受到 SQL 注入攻击。

标签: python json django django-rest-framework django-views


【解决方案1】:

您不能删除它,因为当您将对象序列化为 JSON 时,需要 \ 才能转义 " 和 `。您可能最好将响应转换为 dict() 并返回它。

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2016-10-20
    • 2022-08-18
    • 2011-06-24
    • 2019-08-17
    • 2017-05-04
    • 1970-01-01
    • 2015-11-21
    • 2012-03-16
    相关资源
    最近更新 更多