You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Twitter API导出CSV时如何将拆分的多行推文合并为单行

问题描述

使用Python调用Twitter API采集推文时,接口返回的推文text字段格式示例如下:

'text': 'Sentence 1 of the tweet that needs '
        'to continue onto the second line.\n'
        '\n'
        'Sentence 2 etc etc etc'

写入CSV的要求为每条推文单独占据一行。
最初的处理逻辑是在写入前对text字段调用.strip()方法,但处理后文本内部的换行符并未被清除,最终导出的CSV出现行错乱问题。最初误判问题诱因是Python自动将多行字符串拆分为多个单引号包裹的片段,目标是找到将所有推文文本合并为单行的实现方案。
最初编写的存在缺陷的CSV写入代码:

fieldnames = results["data"][0].keys()
with open("file.csv", "w") as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    for tweet in results["data"]:
        tweet["text"] = tweet["text"].strip()
        writer.writerow(tweet)
可行方案

问题根因:.strip()方法仅会移除字符串首尾的空白字符(包含首尾的换行、空格、制表符等),不会处理字符串内部的换行符,这才是导致CSV行错位的核心原因。
使用.replace()方法替换掉文本中所有的换行符即可实现单行文本效果,跳过csv写入实例、直接向文件写入内容的可运行代码如下:

with open("file.csv", "w") as f:
    for tweet in results["data"]:
        tweet["text"] = tweet["text"].replace("\n", "")
        f.write(tweet["text"] + '\n')

如果需要保留CSV多字段写入的能力,无需放弃csv模块,仅需将原有代码中的.strip()替换为.replace("\n", ""),即可正常使用csv.DictWriter完成写入,不会出现行错乱问题。

内容的提问来源于stack exchange,提问作者Gabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:48:19