【问题标题】:Remove double quotes around string list删除字符串列表周围的双引号
【发布时间】:2018-10-29 15:04:42
【问题描述】:

我有一个包含日期的列表。

event_labels = []
for item in all_list:
    event_labels.append(str(item.event_created_at))

context['graph_data_labels'] = json.dumps(event_labels)


"['2018-05-18', '2018-05-17', '2018-05-16', '2018-05-15', '2018-05-14', '2018-05-13', '2018-05-12', '2018-05-11']"

我正在使用这些数据来输出 chartjs 中的标签。问题是 event_labels 列表周围的双引号。

我有另一个仅包含整数的列表,并且列表的开头和结尾没有环绕引号。

[26.0, 50.0, 27.0, 87.0, 46.0, 24.0, 18.0, 34.0]

如何输出开头和结尾不带双引号的字符串列表?

在前端 HTML 中是这样的:

<div>[26.0, 50.0, 27.0, 87.0, 46.0, 24.0, 18.0, 34.0]</div>

<div>"['2018-05-18', '2018-05-17', '2018-05-16', '2018-05-15', '2018-05-14', '2018-05-13', '2018-05-12', '2018-05-11']"</div>

问题出在控制台中,或者如果我只是打印它,我看不到“

所以我想要的输出是:

<div>['2018-05-18', '2018-05-17', '2018-05-16', '2018-05-15', '2018-05-14', '2018-05-13', '2018-05-12', '2018-05-11']</div>

【问题讨论】:

  • 无需使用 json 转储...

标签: django python-3.x django-2.0


【解决方案1】:

json.dumps(event_labels) 将列表对象转换为字符串。所以它在模板中添加引号。您需要在视图中删除此行并直接添加到上下文列表中:

event_labels = []
for item in all_list:
    event_labels.append(str(item.event_created_at))

context['graph_data_labels'] = event_labels

您也可以使用safe 模板过滤器来禁用转义:

<div>{{graph_data_labels|safe}}</div>

【讨论】:

  • 删除了 json.dumps。还是一样。它似乎只在列表为字符串时添加“,在其整数时不添加
  • @Sharpless512 可能你后来覆盖了graph_data_labels。您可以发布填充视图代码和相关的模板部分吗?还可以尝试&lt;div&gt;{{graph_data_labels|safe}}&lt;/div&gt; 在不转义的情况下在 html 中呈现单引号。
  • {{graph_data_labels|safe}}
    成功了!谢谢!
【解决方案2】:

使用:-

stringVariable.strip('"')

【讨论】:

  • 它实际上不起作用,因为对象没有 " ,只有当我在前端输出它时
  • 能否粘贴代码,用于将输出打印到 html?
  • {{graph_data_labels}}
  • 这只是一个 hack,但可以提供简短的解决方案,用作:- event_labels_string = "['"+"','".join(event_lables)+"']"
猜你喜欢
  • 1970-01-01
  • 2019-11-01
  • 2020-06-10
  • 2023-04-04
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多