假设我有一个Google表单,看起来像这样。
您可以将其导出,以便可以通过类似于以下内容的URL访问它
# CSV
https://docs.google.com/spreadsheets/d/e/Eis4Ya-Le9Py/pub?gid=0&single=true&output=csv
# TSV
https://docs.google.com/spreadsheets/d/e/Eis4Ya-Le9Py/pub?gid=0&single=true&output=tsv
如果您下载该档案并在Open Office上开启它,您可以清楚地看到它可识别多行。
这是因为有多行的字段会被“"括起来。
在纯文本编辑器中,它看起来像
然而,这里有一个问题,如果我使用python requests库获取文件,双引号会被删除。
import requests
r=requests.get(url)
print(r.text)
print(r.content)
print(r.headers)
id description
1 one line
2 line1 line2
3 l1 l2 empty line below end
4 normal
b'id\tdescription\r\n1\tone line\r\n2\tline1 line2\r\n3\tl1 l2 empty line below end\r\n4\tnormal'
{'Content-Type': 'text/tab-separated-values', 'X-Frame-Options': 'ALLOW-FROM https://docs.google.com', ... , 'Transfer-Encoding': 'chunked'}
为什么?
我该如何改变这种行为?
我知道有一个处理csv文件的库,但我无法在我所处的环境中使用它。
2条答案
按热度按时间v2g6jxz61#
感谢@洛雷纳Gomez,我找到了答案。
无论您是否请求tsv / csv文件,* 行为都是不同的,因为 * tsv文件不包括字段中可能出现的“换行符”。
在代码中:
生产
在文本编辑器中打开2。
xe55xuns2#
再加上@Rub的回答,问题不在于
requests
库。根据this信息:制表符分隔值(TSV)文件是一种简单的文本格式,用于在表格结构中存储数据...表中的每条记录都是文本文件的一行。记录的每个字段值都由制表符与下一个字段值分隔。
因此,这意味着在导出到
.tsv
文件后,预期不会保留换行符。