我想引用一个与CSV引用字符串相同的字符串。
>>> a='a"b'
>>> print dq(a)
"a""b"
>>>
如何在Python 2.7中编写dq
函数?
显而易见的解决方案是'"'+a.replace('"','""')+'"'
,但我并不热衷于此。我觉得那里有一种更加诡计多端的方式。
CSV格式中可能还有其他问题(如果有""在此上下文中)可能会咬我。我不想使用csv模块,因为我实际上并没有编写CSV文件,而是我编写的数据与CSV几乎相同。也许我可以深入研究csv模块实现并以某种方式挂钩其内部。
答案 0 :(得分:1)
您可以使用StringIO
模块写入csv
对象,您可以免费获得所有额外的引用方言,以及经过测试的代码。
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.
对于该特定字段,您正在编写的内容包含CSV可能具有的所有烦恼,因此它是CSV。如果你希望它保留一个实现细节,你可以包装CSV东西。
如果你想避免CSV和它的变种的所有可能的陷阱,你将最终重新实现整个事情,这是毫无意义的。