【问题标题】:python add string to list ,how to delete single quotes in List?python将字符串添加到列表中,如何删除列表中的单引号?
【发布时间】:2015-08-04 07:50:02
【问题描述】:

我得到一个字符串列表并保存到 csv 文件

imagesList=['img/201507/27/e731.gif','img/201507/29/e771.png']
myCSV =csv.writer(open('data.csv', 'wb'))
myCSV.writerow([imagesList])

像这样打开 csv 文件:

"['img/201507/27/e731.gif', 'img/201507/29/e771.png']"

但我想得到这样的结果

"["img/201507/27/e731.gif", "img/201507/29/e771.png"]"

所以我改了代码

import csv
imagesList=['img/201507/27/e731.gif','img/201507/29/e771.png']
imgList = []
for image in imagesList:
    image = '"'+image+'"'
    imgList.append(image)
myCSV =csv.writer(open('data1.csv', 'wb'))
myCSV.writerow([imgList])

但我明白了:

"['""img/201507/27/e731.gif""', '""img/201507/29/e771.png""']"

那么我怎样才能删除单引号(')?

【问题讨论】:

  • 为什么需要双引号?你为什么首先将 Python 列表符号写入 CSV 文件?为什么不使用myCSV.writerow(imgList)(注意,没有括号!)。
  • @ozgur:或者只是不将列表包装在另一个列表中。
  • 如果您真的想获得所需的输出,您应该使用csv 模块。该输出是无效的 CSV 数据,没有 CSV 解析器能够读取它。我怀疑你可能想要生成 JSON 数据,在这种情况下,该行应该看起来像 ["img/201507/27/e731.gif", "img/201507/29/e771.png"](没有外引号),你应该使用 json 模块来生成它。
  • @ivae:但该网站确实不需要开头需要"[,结尾需要]"
  • @ivae 似乎你想要 json 数据,而不是 csv,你应该使用 import json; json.dump(myList,open('data.csv', 'w'))

标签: python csv single-quotes


【解决方案1】:

我想你想强制引用csv作者所写的字段,你的答案在于Dialects and Formatting Parameters

试一试:

myCSV = csv.writer(
    open('data1.csv', 'wb'),
    quotechar='"',
    quoting=csv.QUOTE_ALL
)
myCSV.writerows([imgList])

【讨论】:

  • 没有多少报价强制可以达到 OP 想要的效果。他们正在将repr(imgList) 的输出写入一个 CSV 列。
  • 这就是为什么我在试图从原始主题“将单引号更改为双引号”中猜测 OP 想要什么时说“我想你想要”;我的目标是确保每个单元格都被引用。你对这么多的投票很苛刻,但这是我的损失,我想下次我不确定一个问题时我会 STFU ;^)
  • 不错的尝试,但最好澄清 cmets 中的内容 :)
  • 当 OP 有 XY problem 时,正确回答可能会很棘手。
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 2019-02-10
  • 2016-12-08
  • 2021-04-28
  • 2023-04-04
  • 1970-01-01
  • 2020-06-02
  • 2016-05-20
相关资源
最近更新 更多