将 PDF 银行对账单转换为 JSON
从 PDF 对账单中获取机器可读的交易数据,包含 ISO 日期、数值金额和每份对账单的元数据,可直接用于您的脚本、数据库和应用。
或将对账单拖放到此处 · 文件不会离开您的设备 ·
点击任意单元格即可修改。带底色的行表示与对账单上的余额对不上。
安全
对账单在您的浏览器内完成转换,绝不会上传到服务器,因此不存在数据被存储、泄露或共享的风险。
专业级
专为会计师、记账人员和法务团队打造:支持批量对账单和多页 PDF,可导出为 Excel、QuickBooks 和 Xero 格式。
准确
每一行都会与对账单上的余额逐笔核对。如果文件转换结果不如预期,请发邮件告诉我们,我们会持续改进。
需要帮助?
对账单转换结果不符合预期,或者需要处理其他类型的文档?告诉我们具体情况,我们会帮您把数据提取出来。
更多信息与常见问题
如何将银行对账单转换为 JSON
- 添加 PDF 对账单. 将一份或多份 PDF 银行对账单或信用卡账单拖入转换器,或点击选择文件。如果文件有密码保护,系统会提示您输入密码,密码仅在您的设备上使用。
- 检查预览. 交易记录会显示在可编辑的表格中,包括日期、摘要、收入、支出和余额。余额核对功能会标出所有对不上的行,点一下即可修正。
- 下载 JSON. 导出为 Excel (.xlsx)、CSV、OFX 或 JSON,或者直接将表格复制到 Google Sheets。整个过程不会上传任何内容。
关于将对账单转换为 JSON 的更多信息
JSON 结构
每次导出都是一个单独的对象。下面是一个精简示例:
{
"generator": "bank-statements-converter.online",
"generatedAt": "2026-11-03T10:15:00.000Z",
"statements": [{ "file": "october.pdf", "pages": 1, "currency": "GBP",
"dateOrder": "DMY", "openingBalance": 2500, "closingBalance": 4061.23,
"balanceCheck": { "checked": 14, "passed": 14, "totalsMatch": true } }],
"count": 14,
"transactions": [
{ "date": "2026-10-02", "rawDate": "02/10/2026",
"description": "Salary ACME Widgets Pty Ltd", "reference": null,
"debit": null, "credit": 3200, "amount": 3200, "balance": 5700 },
{ "date": "2026-10-03", "rawDate": "03/10/2026",
"description": "Rent Payment October", "reference": null,
"debit": 1450, "credit": null, "amount": -1450, "balance": 4250 }
]
}
为代码而设计
- ISO 8601 日期(
YYYY-MM-DD),原始文本保留在rawDate中,便于审计。 - 数值金额,正负号规则一致:支出时
amount为负数。 - 缺失值使用 null,而不是空字符串,类型检查更简单。
- 元数据包含余额核对结果,您的数据管道可以据此拒绝无法对平的对账单。
典型用途
用 pd.json_normalize(data["transactions"]) 将文件载入 pandas,插入 PostgreSQL 或 SQLite,输入交易分类模型,或为金融科技应用生成测试数据。如果您更喜欢表格数据,同一个预览也可以导出为 CSV 和 Excel。
敏感数据的隐私保护
由于解析在浏览器中完成,您无需将真实的对账单发送给第三方 API,就能将其转换为 JSON。这样,这一步就不涉及数据处理协议,客户数据也始终保留在您自己的电脑上。
相关转换工具和指南
JSON 输出包含哪些内容?
一个 transactions 数组,每一项包含 date(ISO 格式)、rawDate、description、reference、debit、credit、amount 和 balance;此外,每份对账单还附有元数据,例如页数、识别出的币种、日期顺序、期初和期末余额以及余额核对结果。
有 API 吗?
目前没有。转换器完全在浏览器中运行,因此对账单永远不会被上传。您可以从页面导出 JSON,再载入自己的应用程序。
金额是数字还是字符串?
是数字。debit 和 credit 为正数或 null,amount 带正负号(支出为负数),balance 为数字;当对账单没有逐笔余额时,balance 为 null。