csv vs tsv
csv和tsv的不同在于,csv使用逗号 ,
作为元素分隔符,tsv使用制表符 \t
作为分隔符
Q&A
Q1:如果csv中某字符串中本身就包含逗号怎么办?
可以使用双引号将该字符串包起来
Q2:如果csv中某字符串中本身就包含双引号怎么办?
得分两种情况:
- 如果字符串没有被双引号包裹,则不需要任何处理
- 如果字符串被双引号包裹,则需要将句中的单个双引号都替换为双个双引号。即
"
替换为""
Example
例一:字符串中间包含双引号,没有逗号
直接写就可以了

例二:字符串中存在逗号和双引号,双引号不在开头
例如需要在某csv中加入以下信息:
id: 1
content: ooops, a double quotation " there
正确写法:
错误写法1:
错误写法2:
例三:句子开头有双引号,句中没有逗号
这种情况其实和例2是一样的,都是被双引号包裹的字符串,故都需要将内容中的单个双引号转换为两个双引号
例如需要在某csv中加入以下信息:
id: 2
content: "look ahead
正确写法:
错误写法1:
错误写法2:
CSV标准
其中 6-9 为双引号的使用
- 内容仅含有一般性字符
- 首行可以作为表头,也可以不作表头而直接写数据
- 每行数据都以”换行符“作为标识
- 字段(列)使用逗号进行分隔(tsv使用 \t)
- 每一行的列数相同
- 包含逗号的字段必须使用双引号包起来
- 包含”换行符“的字段必须使用双引号包起来
- 其他的字段(除了6、7)均不需要使用双引号包裹
- 字段中若出现两个连续的双引号,则仅代表两个连续的双引号(字面意思,无需转意)
参考:https://techterms.com/definition/csv