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

如何将数组内字符串格式的坐标数组解析为数值类型数组

坐标数组解析方案

问题原因

每个数组元素是合法的JSON数组格式字符串,直接转换为float类型只会提取字符串开头的第一个有效数值,剩余的逗号和第二个数值会被忽略;单独使用replace移除引号没有生效,是因为没有正确拆分字符串内的两个坐标值,也没有将整体字符串转换为数组结构。

实现方法

JavaScript 版本

直接使用JSON.parse解析每个字符串元素即可:

const originalArr = [ 
  "[-33.85812364015231, 151.19984484776273]", 
  "[-33.85812364015231, 151.19984484776273]", 
  "[-33.87137985320215, 151.19263084032974]"
];
const parsedArr = originalArr.map(item => JSON.parse(item));

如需兼容异常格式,可以增加错误处理:

const parsedArr = originalArr.map(item => {
  try {
    const res = JSON.parse(item);
    // 校验坐标格式合法性
    return Array.isArray(res) && res.length === 2 ? res : [];
  } catch (err) {
    return [];
  }
}).filter(item => item.length);

Python 版本

方法1:使用json库解析(推荐)

import json

original_arr = [ 
  "[-33.85812364015231, 151.19984484776273]", 
  "[-33.85812364015231, 151.19984484776273]", 
  "[-33.87137985320215, 151.19263084032974]"
]
parsed_arr = [json.loads(item) for item in original_arr]

方法2:手动处理字符串

如果不想引入json库,可以手动拆分转换:

parsed_arr = []
for coord_str in original_arr:
    # 移除首尾方括号,按逗号拆分两个坐标值
    lat_str, lng_str = coord_str.strip("[]").split(",")
    # 去除空格后转换为float类型
    parsed_arr.append([float(lat_str.strip()), float(lng_str.strip())])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:15:03