sqlalchemy session.query奇怪 - 双重逃脱

时间:2018-05-03 18:56:33

标签: python flask sqlalchemy

我的数据库中有一个文件信息表,我正在尝试查询并返回结果的file_path列作为字符串列表。

我的代码如下所示

let userData = $('#userData');
$("input[name = 'fill_with_auth_info']").on('click', function(e) {
  let checked = $(this).is(':checked');

  if (checked) {
    $('#name').val(userData.data('name'));
    $('#surname').val(userData.data('surname'));
  } else {
    $('#name').val(userData.data(''));
    $('#surname').val(userData.data(''));
  }
});

它返回sqlalchemy.util._collections.result的列表,而不是string的列表。所以我使用以下行进行了转换

path_found = session.query(db.file_table.path).filter([filters]).all()

然而,真的很奇怪。如果我访问路径如“path_found [0] .path”表示法,文件路径中的反斜杠就会被转义一次;

result = [str(path) for path in path_found]

,但是如果我使用转换并使用行结果[0],反斜杠会被转义两次,所以我会得到类似的结果;

"\\Users\\Public\\current\\1.PNG"

我用蛮力去掉额外的反斜杠;

"\\\\Users\\\\Public\\\\current\\\\1.PNG". 

有没有更好的方法来处理这种情况,可能会阻止双重逃逸开始?

1 个答案:

答案 0 :(得分:1)

你确定你正在做正确的列表理解吗?你不需要result = [path.path for path in path_found]吗?