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

如何在Python中获取JSON文件里的RU-RU本地化名称

解决Python中获取JSON里LocalizedNames的RU-RU字段失败问题

可能的失败原因及解决步骤

1. 确认JSON顶层结构与遍历逻辑

你的代码使用for item in data,说明默认JSON文件顶层是数组结构(即[ {...}, {...}, ... ])。如果JSON顶层是单个对象,data会是字典,此时for item in data会遍历字典的键(字符串),自然无法通过item['LocalizedNames']访问对应值。

验证方式:在json.load(file)后添加print(type(data)),若输出为<class 'dict'>,说明顶层是单个对象,需去掉循环直接处理:

data = json.load(file)
localized_names = data.get('LocalizedNames', {})
ru_name = localized_names.get('RU-RU')

2. 安全处理缺少RU-RU字段的情况

如果JSON数组中部分条目没有RU-RU字段,直接用item['LocalizedNames']['RU-RU']会抛出KeyError。建议用字典的get()方法安全取值,还可设置默认值:

for item in data:
    # 获取LocalizedNames字典,无则返回空字典
    localized_names = item.get('LocalizedNames', {})
    # 获取RU-RU值,无则返回默认文本
    ru_name = localized_names.get('RU-RU', '无俄语名称')
    # 传入RU-RU值给Item类(假设第二个参数需要单个字符串)
    newItem = Item(item['UniqueName'], ru_name, item['LocalizedDescriptions'])
    listItems.append(newItem)  # 用append替代insert,无需维护counter变量

3. 匹配Item类的参数要求

原代码把整个LocalizedNames字典传给Item的第二个参数,如果Item类的第二个参数预期是单个字符串(俄语名称),则之前的传参方式错误,需改为传入ru_name而非item['LocalizedNames']。

调试建议

在循环中添加打印语句,确认每个条目的结构:

for item in data:
    print(f"当前条目UniqueName: {item['UniqueName']}")
    print(f"LocalizedNames结构: {item.get('LocalizedNames', '不存在')}")
    print(f"是否包含RU-RU: {'RU-RU' in item.get('LocalizedNames', {})}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:31:00