从Excel到UIGF:我的抽卡记录标准化实战全记录

📅 2026/8/14 14:11:11
从Excel到UIGF:我的抽卡记录标准化实战全记录
从Excel到UIGF我的抽卡记录标准化实战全记录【免费下载链接】HoYo.Gacha✨ 一个非官方的工具用于管理和分析你的 miHoYo 抽卡记录。原神 | 崩坏星穹铁道 | 绝区零An unofficial tool for managing and analyzing your miHoYo gacha records. (Genshin Impact | Honkai: Star Rail | Zenless Zone Zero)项目地址: https://gitcode.com/gh_mirrors/ho/HoYo.Gacha深夜两点我盯着屏幕上的Excel表格发呆。四千多行抽卡记录从原神入坑一路攒到星穹铁道、绝区零记录了我全部的抽卡经历可它们就像堆在仓库角落的旧纸箱除了偶尔翻出来自我感动一点忙都帮不上——想算平均多少抽出金得手动筛半天想复盘某个角色的出货节奏光是整理就耗掉一个晚上想换个顺手的工具分析人家根本不认这个格式。那一刻我明白了问题不在记录多少而在我的数据是散装货从来没有按统一口径整理过。花了两天晚上我把这些散装记录全部转成了UIGF标准格式之后一切都不一样了。这篇文章就把从踩坑到理顺的完整过程讲清楚希望能帮你少走同样的弯路。一、为什么非要有统一口径不可先说说这次折腾的收益免得你怀疑值不值得。我的记录散落在三张表格里一张是当年随手记的原神抽卡一张是从社区抄来的星穹铁道模板还有一张绝区零的是用脚本抓的三张表字段名都不一样。有人把这种现象叫数据孤岛说得直白点信息都在但谁都连不上谁。想分析得先做大量重复的搬运工。标准化就是给所有记录定一套通用语而UIGF统一抽卡记录格式就是社区里大家公认的那套语言。转成这个格式之后记录可以在不同工具间无缝流动不再被某个软件的私有格式绑架保底计算、出货概率、抽数统计这些分析从手工作坊变成一条命令的事历史记录完整归档哪怕换电脑、换工具也随时能把数据重新请出来。一句话标准化本身不产生新数据但它让已有的数据真正变得可用。二、别想着一步到位先装箱再报关第一次动手时我的想法很简单把Excel直接翻译成UIGF的JSON不就行了结果做了一半就卡住了——表格里的日期有2023/5/1 14:30这种写法也有5月1号下午这种口语化写法星级有的写五星有的写5★还有的写数字5。直接硬转出来的文件乱成一团。后来我改用了一个思路分两步走先做清洗再做映射。这就像搬家。你不会把书、盘子、衣服直接塞进货车对吧正确的做法是先把零碎东西按规格装进纸箱、贴好标签到了新家再按房间归位。转换记录也是一样第一步先把Excel里的原始数据读出来统一成一份干净的中间格式——把时间都改成同一种写法把空值补齐把五星/5★/5这类写法归拢成一个标准值。这一步只解决整不整齐的问题不管对不对得上标准。第二步再把这份干净数据按UIGF的字段规范逐项映射生成标准JSON。这一步只解决怎么对应的问题不管数据内容本身。两个阶段各管各的事出错了也好定位如果是格式乱问题在第一阶段如果是对应不上问题在第二阶段。比起指望一次转换搞定一切这个拆法把复杂度砍掉了一大半。三、字段对号入座四条最容易翻车的线真正动手映射时最花时间的是让表格里的每一列和UIGF字段对上号。以我自己的经验下面四类信息最容易出问题。抽卡时间。UIGF要求时间使用统一的ISO 8601格式形如2024-05-01T14:30:0008:00。我原来的表格里2023/5/1 14:30和5月1号下午并存第一步清洗时全都被归成标准写法。另外还要留意时区不同服务器的时区不一样好在UIGF文件里可以记录region_time_zone字段导出时带上它导入方才能正确换算时间。物品名称与ID。光靠名字做对应很脆弱同一件物品在不同语言里名字完全不同。更稳的做法是借助item_id这样的唯一编号来关联再配合游戏元数据把名字翻译成你习惯的语言。这也是很多工具能自动把英文物品名转成中文的底层原理。星级rank_type。标准里星级用纯数值表示3、4、5。清洗阶段务必把五星5★这类写法统一成数字否则后续的保底计算全会被带偏。卡池类型gacha_type。不同工具对卡池的编码五花八门转换时要按UIGF的编码映射。有意思的是原神官方曾经给同一个卡池发过两个不同的类型编号规范里要求把它们归并成一个这正是映射逻辑存在的原因之一——照抄原值反而会出错。映射过程中还有一个容易忽略的点UID一致性。UIGF文件头部的UID必须和每一条记录里的UID对得上否则导入时会直接被拒。转换工具一般会帮你校验这一点。四、转换完不算完得过了这三关第一次转换完成后我兴冲冲地导入结果被工具提示记录数与预期不符。从此我养成了一个习惯任何一次转换都要做三件事再收工。第一关数对得上吗。转换前先记下Excel里的记录总数数据透视表或简单的筛选统计都行转换后核对JSON里的记录条数。两条数字不一致说明转换过程中有记录丢了这是最严重的问题必须回头查映射。第二关文件合法吗。把生成的JSON丢进任意JSON校验工具看一眼结构是否合法括号、引号、逗号有没有问题。看似低级但手工改过文件的人都知道这一步有多值钱。第三关抽查关键字段。随机抽几条记录核对时间戳格式、星级数值、卡池编码是否符合规范再挑一条五星记录看看名字、ID、类型是否都对得上。三关全过这次转换才算真正落地。五、意外总会发生预案得提前备好说实话整个流程里最让我后怕的不是转换失败而是差点把原始数据改坏。所以动手前第一件事永远是备份这点怎么强调都不过分。我的习惯是保留三层原始Excel文件原封不动单独放一个文件夹清洗后的中间文件和原始文件放一起方便对照最终UIGF文件按日期和游戏分类归档。哪怕哪天转换出了岔子随时能退回上一步重来这就是回滚的价值。如果转换真的失败别慌按这个顺序排查转换失败先确认Excel文件本身能正常打开排除文件损坏再检查表头行是不是被工具正确识别实在不行把Excel另存为成CSV再试一次往往能绕过编码问题。数据丢失优先怀疑字段映射逐列确认是否每列都被映射到了接着检查有没有隐藏行或隐藏列——这俩坑我踩了不止一次大文件可以先拆成几份分批处理方便定位是哪一段出问题。导入报错先验证JSON格式合法性再确认UIGF版本是否在工具支持范围内最后检查文件是不是UTF-8编码保存。版本不匹配是最容易被忽略的原因导入前务必看清楚。另外遇到个别异常数据时尽量选跳过并记录错误而不是全部终止。让一次坏数据毁掉整个转换性价比太低了。六、把一次性操作变成长期习惯尝到甜头之后我给自己立了个规矩以后每次抽卡记录更新都走同一条标准流程。更进一步还可以把这些玩法玩起来批量与自动化把转换流程写成可重复执行的脚本一次处理多个Excel文件甚至可以设置定时任务定期检查某个文件夹里有没有新文件自动转换、自动备份。多游戏数据整合原神、星穹铁道、绝区零的记录分别转成各自的标准格式原神对应UIGF星穹铁道对应SRGF放进同一个仓库统一管理跨游戏的抽卡对比就成了顺手的事。自定义分析数据标准化之后想做什么分析都是自由的——抽卡概率趋势、角色获取周期、资源投入产出比都可以用现成的工具如 HoYo.Gacha 这类开源工具一键出图不再需要手搓。如果愿意折腾也可以执行git clone https://gitcode.com/gh_mirrors/ho/HoYo.Gacha拉取 HoYo.Gacha 的源码研究它的导入导出实现里面关于UIGF读写、时区换算、元数据匹配的代码都值得读一读。回头看这个晚上最大的收获不是那几张JSON文件而是一套可复用的方法先备份再清洗后映射终验证。散装的记录从此有了标准身份想分析随时能分析想迁移随时能迁移再也不会因为格式不对而丢数据。所以如果你的抽卡记录也还躺在Excel里吃灰今天就动手先备份再挑一份记录完成第一次转换。数据标准化的路迈出第一步就没那么难了。【免费下载链接】HoYo.Gacha✨ 一个非官方的工具用于管理和分析你的 miHoYo 抽卡记录。原神 | 崩坏星穹铁道 | 绝区零An unofficial tool for managing and analyzing your miHoYo gacha records. (Genshin Impact | Honkai: Star Rail | Zenless Zone Zero)项目地址: https://gitcode.com/gh_mirrors/ho/HoYo.Gacha创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考