如何从含数字姓名映射的文本JSON中匹配Python数组姓名对应5-6位数字
匹配查询实现方案
你的场景数据量极小,直接用Python原生逻辑处理就是最优解,完全不需要引入SQL等额外工具,24000条映射的总内存占用不到1MB,查询总耗时在毫秒级。
核心逻辑
原JSON存储的是「数字:姓名」的正向映射,你需要按姓名查询数字,直接把映射倒转为「姓名:数字」的字典即可,字典的查询时间复杂度是O(1),远高于遍历数组搜索的效率。
实现代码
import json # 读取JSON映射文件 with open("你的映射文件路径.txt", "r", encoding="utf-8") as f: num_to_name = json.load(f) # 构建倒排索引:姓名 -> 数字 name_to_num = {name: num for num, name in num_to_name.items()} # 待查询的姓名数组 target_names = ['Jacob', 'Janet', ..., 'John'] # 匹配生成元组,可自行调整匹配不到的情况的处理逻辑 result_tuples = [] for name in target_names: if name in name_to_num: result_tuples.append((name, name_to_num[name]))
其他方案适用场景
只有当后续数据量涨到百万级以上、或者需要支持多维度复杂查询时,再考虑引入SQLite这类轻量数据库,当前场景用原生方案足够高效,还能避免额外的依赖配置成本。
内容的提问来源于stack exchange,提问作者QJ123123
相关产品推荐
相关产品推荐

