CSV/TSV中的双引号

csv vs tsv

csv和tsv的不同在于,csv使用逗号 , 作为元素分隔符,tsv使用制表符 \t 作为分隔符

Q&A

Q1:如果csv中某字符串中本身就包含逗号怎么办?

可以使用双引号将该字符串包起来

Q2:如果csv中某字符串中本身就包含双引号怎么办?

得分两种情况:

  1. 如果字符串没有被双引号包裹,则不需要任何处理
  2. 如果字符串被双引号包裹,则需要将句中的单个双引号都替换为双个双引号。即 " 替换为 ""

Example

例一:字符串中间包含双引号,没有逗号

直接写就可以了

例二:字符串中存在逗号和双引号,双引号不在开头

例如需要在某csv中加入以下信息:

id: 1
content: ooops, a double quotation " there

正确写法:

错误写法1:

错误写法2:

例三:句子开头有双引号,句中没有逗号

这种情况其实和例2是一样的,都是被双引号包裹的字符串,故都需要将内容中的单个双引号转换为两个双引号

例如需要在某csv中加入以下信息:

id: 2
content: "look ahead

正确写法:

错误写法1:

错误写法2:

CSV标准

其中 6-9 为双引号的使用

  1. 内容仅含有一般性字符
  2. 首行可以作为表头,也可以不作表头而直接写数据
  3. 每行数据都以”换行符“作为标识
  4. 字段(列)使用逗号进行分隔(tsv使用 \t)
  5. 每一行的列数相同
  6. 包含逗号的字段必须使用双引号包起来
  7. 包含”换行符“的字段必须使用双引号包起来
  8. 其他的字段(除了6、7)均不需要使用双引号包裹
  9. 字段中若出现两个连续的双引号,则仅代表两个连续的双引号(字面意思,无需转意)

参考:https://techterms.com/definition/csv

Leave a Comment