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

Python中对比CSV导出字典与JSON并添加匹配Lat属性的实现问询

解决方法
  • 建议调整读取逻辑,用Python标准库json模块读取原始JSON文件保留完整结构,比单纯用pandas处理嵌套字段更灵活,完整实现代码如下:
import pandas as pd
import json

# 1、读取CSV生成匹配字典
dict_from_csv = pd.read_csv('Iris2.csv', encoding='ISO-8859-1', header=None, index_col=0, squeeze=True).to_dict()

# 2、读取原始JSON文件,保留完整条目结构
json_path = r'C:/Users/IT City/Downloads/data.json'
with open(json_path, 'r', encoding='utf-8') as f:
    json_data = json.load(f)

# 3、遍历每个条目匹配Lat并写入
for item in json_data:
    # 提取当前条目的venue_name
    venue_name = item.get('venue_info', {}).get('venue_name', '')
    # 匹配CSV字典,匹配到就赋值,没匹配到设为空字符串
    if venue_name in dict_from_csv:
        # 不需要venue_name前缀的话可以直接写 item['Lat'] = dict_from_csv[venue_name]
        item['Lat'] = f"{venue_name}:{dict_from_csv[venue_name]}"
    else:
        item['Lat'] = ''

# 4、修改后回写到原JSON文件
with open(json_path, 'w', encoding='utf-8') as f:
    # ensure_ascii=False避免中文乱码,indent=2保留格式化缩进方便阅读
    json.dump(json_data, f, ensure_ascii=False, indent=2)
  • 代码说明:
    • 全程保留原始JSON的所有字段,仅新增Lat属性,不会修改原有数据
    • 未匹配到的条目会自动添加值为空的Lat属性,符合需求
    • 如果需要把Lat放在venue_info嵌套结构里,只需要把赋值逻辑改成item['venue_info']['Lat'] = 对应值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:45:00