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

如何将终端获取的Twitter API JSON结果保存为CSV文件

嘿,我来帮你搞定把Twitter搜索API返回的JSON转成CSV的事儿!这里有两种实用方法,你可以根据自己的习惯选:

方法1:用Python脚本自定义转换(适合需要灵活选择字段的场景)

这种方法能让你精准控制要导出的内容,比如只提取推文文本、用户名、转发数这些关键信息:

  • 第一步,先把twurl的输出保存成JSON文件:
    在终端执行这条命令,把API返回结果写入本地文件:

    twurl /1.1/search/tweets.json?q=I%20have%20been%20diagnosed%20with%20depression > tweets.json
    
  • 第二步,写一个Python脚本(比如命名为json_to_csv.py):

    import json
    import csv
    
    # 读取保存的JSON文件
    with open('tweets.json', 'r', encoding='utf-8') as json_file:
        tweet_data = json.load(json_file)
    
    # 定义你想要导出的字段(可以根据需求增减)
    desired_fields = [
        '推文ID', '创建时间', '推文内容', '用户名', '用户昵称', '转发数', '点赞数'
    ]
    
    # 打开CSV文件准备写入
    with open('tweets.csv', 'w', newline='', encoding='utf-8') as csv_file:
        writer = csv.DictWriter(csv_file, fieldnames=desired_fields)
        writer.writeheader()  # 写入表头
    
        # 遍历每条推文
        for tweet in tweet_data['statuses']:
            # 清理推文内容里的换行符,避免CSV格式混乱
            cleaned_text = tweet['text'].replace('\n', ' ').replace('\r', '')
            # 处理嵌套字段(比如用户信息在user对象里)
            row = {
                '推文ID': tweet['id_str'],
                '创建时间': tweet['created_at'],
                '推文内容': cleaned_text,
                '用户名': tweet['user']['screen_name'],
                '用户昵称': tweet['user']['name'],
                '转发数': tweet['retweet_count'],
                '点赞数': tweet['favorite_count']
            }
            writer.writerow(row)
    
  • 第三步,运行脚本:

    python json_to_csv.py
    

    执行完后,同目录下就会生成tweets.csv文件啦。如果需要调整导出字段,直接修改desired_fields和对应的row字典内容就行。

方法2:用命令行工具快速转换(适合不需要复杂自定义的场景)

如果你习惯用终端操作,这种方法更高效,需要用到两个工具:jq(解析JSON)和csvkit(处理CSV格式)。先安装它们:

  • macOS:brew install jq csvkit
  • Ubuntu/Debian:sudo apt-get install jq csvkit
  • Windows:用Chocolatey安装:choco install jq csvkit

步骤如下:

  1. 先把twurl的输出保存成JSON文件(和方法1第一步一样):

    twurl /1.1/search/tweets.json?q=I%20have%20been%20diagnosed%20with%20depression > tweets.json
    
  2. 用jq提取字段并转成CSV,再用csvkit处理格式:

    jq -r '.statuses[] | [.id_str, .created_at, (.text | gsub("\n"; " ")), .user.screen_name, .user.name, .retweet_count, .favorite_count] | @csv' tweets.json | csvformat -U 1 > tweets.csv
    

解释下这个命令:

  • jq部分:从statuses数组里取出每条推文,提取指定字段,把推文里的换行符替换成空格,再转成CSV格式。
  • csvformat -U 1:把所有字段用双引号包裹,避免推文里的逗号导致CSV列错位。

如果要调整导出字段,只需要修改jq里的[]数组内容就行,比如加个.lang就能导出推文语言信息。

小提示:不管用哪种方法,都要注意推文内容里的特殊字符(换行、引号、逗号)可能影响CSV格式,上面的方法已经做了基础处理,你可以根据实际情况再调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:50:17