如何在python中解构字符串数据?

2024-04-24 20:18:18 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> st['xy'][0]
>>> '(35.25792753, 129.2127994)'
>>> filled['xy'][0]
>>> (37.77432579, 128.9071418)

我需要(x,y)数据格式而不是“(x,y)”来使用haversine函数

如何解构字符串数据


Tags: 数据函数字符串st数据格式xy解构haversine
3条回答

使用ast.ast_literal

literal提供从字符串安全构造对象(即比eval更安全)

import ast
value = ast.literal_eval(st['xy'][0])

# value becomes tuple: (35.25792753, 129.2127994)

看起来您的数据是一个字符串。如果其格式始终与所示格式相似,则可以执行以下操作:

data = st['xy'][0]
x, y = data.split(" ")
x, y = float(x[1:-1]), float(y[:-1])  # Slice parentheses and comma away

还可以使用正则表达式(此方法更通用):

import re
data = st['xy'][0]
number_pattern = r'\d+(?:\.\d+)'
x, y = re.findall(number_pattern, data)  # NB: Will error out if your string is not well-formatted

您可以使用内置模块^a1}:

import re

t = tuple(re.findall("\d+\.\d+", st['xy'][0]))

相关问题 更多 >