【问题标题】:select data from a table and return it as an array in django从表中选择数据并将其作为 django 中的数组返回
【发布时间】:2014-05-09 06:25:38
【问题描述】:

我有一个表,其中有一列evidence,我想count 包含特定证据编号的行数。例如 100 行的证据编号可能为 003,200 行的证据编号可能为 004 等。

我试过这个:

distinct_evidence=Tzworksjmplist.objects.values('evidence').annotate(evidence_count = Count('evidence'))
    distinct_evidence=list(Tzworksjmplist.objects.values('evidence').annotate(evidence_count = Count('evidence')))

结果是:

[{'evidence_count': 6119, 'evidence': u'002'}, {'evidence_count': 6119, 'evidence': u'003'}, {'evidence_count': 6119, 'evidence': u'004'}, {'evidence_count': 6119, 'evidence': u'010'}, {'evidence_count': 6119, 'evidence': u'020'}, {'evidence_count': 6119, 'evidence': u'030'}, {'evidence_count': 6119, 'evidence': u'040'}];

我希望它以这种格式返回数据:

[['Evidence 003', 12], ['Evidence 44', 9], ['Evidence 005', 14], ['Evidence 33', 16], ['Evidence 002', 7], ['Evidence 666', 9]];

有人请提供关于我如何在 Django 中实现这一点的见解?

【问题讨论】:

    标签: database django django-models django-views


    【解决方案1】:

    最后试试这个:

    result = [['Evidence %s' % e['evidence'], e['evidence_count']] for e in distinct_evidence]
    

    无论如何,我不明白为什么证据编号是 CharField。

    【讨论】:

    • 谢谢pythonishvili,证据应该是一个整数,你的回答符合我的目的
    • 如何删除结果中的 u?结果是 [[u'Evidence 2', 6119], [u'Evidence 5', 6119], [u'Evidence 7', 6119]];
    • u 前缀意味着该字符串实际上是一个 unicode。而unicode是个好东西。保留 u 除非您明确要求它是一个老式字符串,例如。与另一个字符串进行比较。要转换为字符串,请使用 str(u'unicoded string')
    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2020-02-23
    • 1970-01-01
    相关资源
    最近更新 更多