我如何使用 csv 添加引用字符:
% package require csv
0.7.3
% set l [list "21" "Some test" "Some test"]
% ::csv::join $l {,} {"}
21,Some test,Some test
我想要像 "21","Some test","Some test" 这样的输出
我如何使用 csv 添加引用字符:
% package require csv
0.7.3
% set l [list "21" "Some test" "Some test"]
% ::csv::join $l {,} {"}
21,Some test,Some test
我想要像 "21","Some test","Some test" 这样的输出
该csv
软件包不提供此类引用,除非您诱骗它这样做。
可以肯定地说,它应该只是提供一个选项来做这件事,但试试这个:
package require struct::list
set l {1 "Some Text" "Some Test"}
set r [join [struct::list map $l {format {"%s"}}] ","]
puts $r
诀窍是:
csv
的转义(默认为"
)% set L [list {"21"} {"Some test"} {"Some test"}]
{"21"} {"Some test"} {"Some test"}
% csv::join $L , {}
"21","Some test","Some test"
请注意,这并不能解决您的某个值"
在中间某处有一个字符的问题——如果发生这种情况,您应该以某种方式以您的目标 CSV 处理器理解的方式转义这些字符。
这个解决方案不是最好的,但有效。您可能需要注意一些极端情况。它不需要更改列表中的项目,也不需要 CSV 包。
set theList [list "21" "Some test" "Some test"]
set quotedCSV "\"[join $theList {","}]\""
puts $quotedCSV
基本上,quotedCSV = quote + ( theList, separated by quote+comma+quote ) + quote
. 我的建议是使用 CSV,除非你真的需要引号。