当前位置:首页>python>python脚本方法:将json文件里的经纬度小数位数保留为6位

python脚本方法:将json文件里的经纬度小数位数保留为6位

  • 2026-09-24 07:23:29
python脚本方法:将json文件里的经纬度小数位数保留为6位
该json文件格式如下:
脚本使用方法
python环境2.7
将下述代码复制粘贴到py文件
输入json文件路径
复制py文件路径
在文件夹路径栏目录输入cmd
在cmd里运行py文件即可,结果保存在原json文件路径下
# -*- coding: utf-8 -*-import jsonimport osimport sysreload(sys)sys.setdefaultencoding('utf-8')def process_coordinates(coords):    """递归处理坐标,保留6位小数"""    if isinstance(coords, list):        if len(coords) == 2 and isinstance(coords[0], (int, float)) and isinstance(coords[1], (int, float)):            # 单个坐标点,处理精度            return [round(coords[0], 6), round(coords[1], 6)]        else:            # 嵌套坐标数组,递归处理            return [process_coordinates(item) for item in coords]    else:        return coordsdef main():    file_path = r"D:\jjj\jsen.json"    # 检查文件是否存在    if not os.path.exists(file_path):        print(u"错误:文件 {} 不存在".format(file_path))        return    try:        # 读取JSON文件        with open(file_path, 'r') as f:            data = json.load(f)        if not isinstance(data, dict):            print(u"错误:JSON文件格式不正确,根节点不是对象")            return        # 处理每个要素的坐标        features = data.get('features', [])        if not isinstance(features, list):            print(u"错误:features字段不是数组类型")            return        for i, feature in enumerate(features):            if not isinstance(feature, dict):                print(u"警告:第{}个要素格式不正确,跳过处理".format(i+1))                continue            geometry = feature.get('geometry')            if geometry is None or not isinstance(geometry, dict):                print(u"警告:第{}个要素的geometry字段为空或格式不正确,跳过处理".format(i+1))                continue            coordinates = geometry.get('coordinates')            if coordinates is None:                print(u"警告:第{}个要素的coordinates字段为空,跳过处理".format(i+1))                continue            geometry['coordinates'] = process_coordinates(coordinates)            print(u"已处理第{}个要素".format(i+1))        # 保存处理后的JSON        output_path = r"D:\jjj\jsen_processed.json"        with open(output_path, 'w') as f:            json.dump(data, f, ensure_ascii=False, indent=2)        print(u"\n处理完成!结果已保存到:{}".format(output_path))    except Exception as e:        import traceback        traceback.print_exc()        print(u"\n处理过程中出现错误:{}".format(str(e)))if __name__ == "__main__":    main()

最新文章

随机文章