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

替换JSON文件字典列表空值/X为浮点值 适配PostgreSQL导入

PostgreSQL导入前置JSON数据清洗方案

针对9000条结构统一的字典类JSON数据,采用字段白名单定向清洗的方案即可,不会误改非目标字段,处理性能完全满足要求。


核心清洗规则对齐

  • 仅对提前圈定的浮点/数值类型字段做处理,文本类型字段、整数字段完全保留原值
  • 数值字段中仅将非法值""(空字符串)、"X"(标记值)替换为浮点数0.0001
  • 数值字段中原生整数、浮点数、可转浮点的合法数字字符串(如"0.05"、"0")全部保留,不做额外转换
  • 注:你提供的期望样例中前两条记录steuerpflichtig字段替换为0.0001属于笔误,该字段原始值为合法数字字符串"0",按需求应当保留,下述代码严格遵循该规则。

可直接运行的实现代码

采用Python实现,无额外依赖,处理全量数据耗时在100ms以内:

import json

# --------------------------
# 配置项:按实际表结构修改
# --------------------------
# 从PostgreSQL目标表中筛选出的所有浮点/数值类型字段名
FLOAT_FIELD_LIST = {
    "ursprungsauftrag",
    "umsatz",
    "brutto",
    "vertrauensschadenhaftpflicht",
    "stornoreserve",
    "umsatzsteuer_betrag",
    "netto",
    "steuerpflichtig"
}
# 需要替换的非法值集合
ILLEGAL_VAL = {"", "X"}
# 替换后的目标值
REPLACE_VAL = 0.0001

# 1. 读取原始JSON文件
with open("raw_data.json", "r", encoding="utf-8") as f:
    raw_records = json.load(f)

# 2. 逐记录清洗
cleaned_records = []
for item in raw_records:
    current = item.copy()
    for field in FLOAT_FIELD_LIST:
        field_val = current.get(field)
        # 仅当字段值为字符串且属于非法值时替换,其余情况不动
        if isinstance(field_val, str) and field_val in ILLEGAL_VAL:
            current[field] = REPLACE_VAL
    cleaned_records.append(current)

# 3. 导出清洗后文件
with open("cleaned_for_pg.json", "w", encoding="utf-8") as f:
    json.dump(cleaned_records, f, ensure_ascii=False, indent=2)

校验与导入注意事项

  • 不要使用「尝试将所有值转为float,转换失败则替换」的逻辑,该逻辑会误将文本字段的非数字内容(如样例中的"Rechnung")替换为0.0001,导致数据错误。
  • 若不想手动维护浮点字段清单,可直接查询PostgreSQL系统表自动获取字段列表,执行以下SQL即可拿到对应表的所有数值类字段:
SELECT column_name
FROM information_schema.columns
WHERE table_name = '你的目标表名'
  AND data_type IN ('numeric', 'real', 'double precision');
  • 清洗完成后可执行快速校验,确认无非法值残留,校验通过即可直接导入:
residual_error = 0
for record in cleaned_records:
    for field in FLOAT_FIELD_LIST:
        val = record[field]
        if isinstance(val, str) and val in ILLEGAL_VAL:
            residual_error += 1
print(f"残留非法值数量:{residual_error}")
# 输出为0即表示清洗合格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:33:20