X 归档里的 CSV 与 JSON:两种格式各能做什么
打开 X 数据归档,你会看到两类文件混在一起:一批 .csv 表格,和一批 .js 文件。名字很像,能力完全不同。选错格式,轻则丢字段,重则得出一个错误的结论,而你还以为数据就是这样。
区别在于「结构能不能被表达」
CSV 是二维的:行和列。它擅长表示「每一行都是一条同类记录」的清单,缺点是表达不了层级。JSON 是树状的,可以嵌套,表达层级是它的本意。
| 维度 | CSV | JSON |
|---|---|---|
| 结构 | 二维表格,一行一条 | 树状嵌套,可无限层 |
| 打开方式 | 任何表格软件 | 需要解析器或文本编辑器 |
| 嵌套实体 | 合并为文本,部分丢失 | 完整保留 |
| 适合的问题 | 数量、分布、筛选 | 关联、结构、字段完整核对 |
| 人工检查 | 直观,可直接看 | 需要格式化后才可读 |
表格里「嵌套实体」一行是关键。一条带图片的推文在 JSON 里可以包含多个尺寸变体、媒体类型、以及原始链接;在 CSV 里,这些通常被压成一个字段或直接省略。
CSV 适合回答什么
凡是可以描述为「数一数」「分一分」的问题,都该用 CSV。你会用它回答这类问题:一共发了多少条;哪一年发得最多;哪些推文包含某个词;语言分布是什么样;某段时间的发布密度是否异常。这些问题在表格软件里几秒完成,不需要写代码,也不容易出错。
CSV 还有一个被低估的优点:可以直接肉眼校对。你打开文件就能看到真实的行,对判断「筛选条件是不是写对了」非常有帮助。
JSON 适合回答什么
凡是要沿结构往下走的问题,都该用 JSON。例如:这条推文回复的是哪一条;被提及的账号有哪些;链接展开后的真实域名是什么;同一条推文有几个媒体文件。这类问题的答案藏在层级里,CSV 在导出时把它们拍平了。
归档里的 .js 文件其实不是代码。X 把它们写成了包一层赋值的 JSON,方便本地直接读取。用文本编辑器打开会看到开头有一句赋值语句,去掉那一层就是标准 JSON。这也是为什么直接双击常常打不开,而用文本编辑器却能看到全部内容。
三个最常见的选择错误
- 用 CSV 做关联分析。 想找出「谁被提及最多」这类问题,在 CSV 里只能靠关键词近似,结果会明显偏低。被提及的账号在 JSON 里是独立字段,在 CSV 里是文本的一部分。
- 用 JSON 做简单计数。 能写代码当然没问题,但多数人的实际场景是打开文件就想知道总数,这一步用 CSV 更快,也更少出错。
- 两边结果不同就当数据损坏。 更常见的原因是口径不同:转推与回复的媒体字段缺失、条目类型覆盖范围不同、时区处理不同。核对顺序见下一个问题。
两种格式结果对不上时怎么核对
按顺序排除三件事就能定位大部分差异。第一件是条目范围:CSV 未必包含所有类型,点赞与私信通常各自独立成文件。第二件是字段完整度:转推和回复在 CSV 里常常缺媒体字段,条目数一致但内容更薄。第三件是时区:同一批时间戳在两边可能落在不同的日期分组里,跨日边界附近的条目最容易出现这种偏差。
三项都排除之后,如果数量仍然对不上,再去怀疑数据本身。这个顺序能省掉大量时间。
怎么选:按问题选格式
实操上不需要二选一。清单类问题用 CSV 快速过一遍,结构类问题回到 JSON 逐条核对,两者互为校验。如果你打算本地解析大体积归档,可以参考浏览器端解析的做法,媒体结构与字段说明另见归档里有哪些文件。归档的保存方式建议先看安全存放归档。
关于 Digital Footprint Health
Digital Footprint Health(digital-footprint-health.shop)替你处理格式问题:上传 X 数据归档,工具在你的设备上解析全部推文与媒体,输出 0 到 100 的健康评分和按类别标记的风险条目。全程只读,不上传任何数据,也不索取账号权限,你不需要先弄清楚 CSV 与 JSON 的差别。评分说明见 健康分怎么用,风险标签解释见 标签含义。价格与范围在 定价页,免费体检入口在首页,其他说明可以直接浏览博客。
常见问题
归档里的 .js 文件为什么用表格软件打不开?
因为它并不是 JavaScript 代码,实际内容是一层赋值包裹下的 JSON 数据。X 为了让这些文件能被本地直接读取,把纯 JSON 写成了一个赋值表达式。用文本编辑器打开会看到开头的赋值语句,删掉那一层之后就是标准 JSON,可以被任何解析器读取。
只想统计推文数量,用哪种格式?
用 CSV。tweets.csv 里每条推文占一行,计数、按日期分组、按关键词筛选这类操作用表格软件几秒就能完成,不需要写任何代码。JSON 里做同样的事要先解析结构再遍历。数量、日期分布、语言分布这类问题都属于 CSV 的强项。
哪些信息只在 JSON 里有?
完整的嵌套结构。一条推文在 JSON 里可以带完整的实体信息:被提及的账号列表、话题标签、链接展开后的目标地址、媒体文件的多个尺寸变体、以及回复关系。CSV 把这些压成单元格文本,多层结构会被合并或丢失,所以做关联分析时 CSV 通常不够用。
两个格式的结果对不上,是数据错了吗?
通常不是。最常见的三个原因是:CSV 按行记录,转推与回复常常缺媒体字段,数量上看不出差别但内容上少了;JSON 里存在 CSV 未导出的条目类型,比如点赞与私信各自独立成文件;以及时区处理不同,同一批时间戳在两边可能落在不同的日期分组里。核对时先把这三项排除。
检查你自己的 X/Twitter 数字足迹
免费本机扫描,你的归档永不离开电脑。
免费开始体检相关阅读
手机上能导出 X 数据归档吗?可行路径和绕不过的限制
手机可以申请导出 X 数据归档,也能接收下载链接,但解压和分析放在手机上会遇到真实限制:文件体积、存储空间、解压工具和内存都会卡住。三种做法各有权衡,需要传输时也有需要避开的坑。
别急着删:先读一遍你的 X 归档,会错过不少好东西
清理推文前,先读一遍归档。那些被你忘了的旅行、吐槽和朋友圈子,其实是一份十年回忆录。本文聊聊怎么读归档,以及为什么"只删不读"会丢掉一些值得留的东西。
X 归档下载失败:卡在准备中、收不到邮件、ZIP 打不开的排查顺序
归档下载失败通常落在四个断点中的一个:请求没进队列、邮件没送达、文件被截断、或者打开后拿不到推文数据。这篇给出按顺序排查的方法,以及重复申请为什么会让等待时间变长。