Python 按不同长度搜索数字
我有gps日志文件和一行文字Python 按不同长度搜索数字,python,numbers,line,Python,Numbers,Line,我有gps日志文件和一行文字 {"location": {"lat": 50.0918805, "lng": 14.4261817}, "accuracy": 29.1671027, "ts": 1598515548} 我的目标是打印纬度和经度的值,我能够做到: folder_path = 'D:\path' for filename in glob.glob(os.path.join(fold
{"location": {"lat": 50.0918805, "lng": 14.4261817}, "accuracy": 29.1671027, "ts": 1598515548}
我的目标是打印纬度和经度的值,我能够做到:
folder_path = 'D:\path'
for filename in glob.glob(os.path.join(folder_path, '*.geo.json')):
with open(filename, 'r') as filecontent:
readme = filecontent.read()
lat = readme[21:28]
long = readme[40:47]
print(lat, long)
我觉得这对我来说太完美了,我得到了很好的数据,比如:
50.0918 14.4260
50.0920 4.42629
50.0918 14.4260
50.0917 14.4258
50.0920 14.4263
50.0917 14.4259
50.0918 14.4260
50.0919 4261233
但实际上缺少数字,问题是在日志中,为纬度/经度生成的数字并不总是相同的长度,我从第一个字符的位置打印数字。
我试着只打印数字,然后按“,”分开,但还有更多的数字我不想要
在这里,我被搞糊涂了,不知道如何在“lat”:
和“lng”:
之后打印所有数字,但在“准确性”:
如果你能帮助我,我会很高兴的,干杯。这是结构化文本,所以你最好使用这种结构,例如:
import json
content = """{"location": {"lat": 50.0918805, "lng": 14.4261817}, "accuracy": 29.1671027, "ts": 1598515548}"""
data = json.loads(content)
print(data["location"]["lat"], data["location"]["lng"])
这就产生了
50.0918805 14.4261817
您应该使用库解析.json
文件:
导入json
导入glob
文件夹路径='D:\path'
对于glob.glob(os.path.join(文件夹路径,*.geo.json')中的文件名:
coords=json.load(打开(文件名为'r'))
印刷品(
坐标['location']['lat'],
coords['location']['lng'],
坐标[‘准确度’]
)
# 50.0918805 14.4261817 29.1671027
使用json库,然后您可以将文件视为字典