搜索符合不同长度的数字
Searching numbers in line with different lengths
我得到了带有文本行的 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(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
但实际上缺少数字,问题出在日志中,为 latitude/longtitude 生成的数字并不总是相同的长度,我从第一个字符的位置开始打印数字。
我试图只打印数字并用“,”分隔它们,但我不想要更多的数字。
我被卡住了,无法弄清楚如何打印 "lat":
和 "lng":
之后但不是 "accuracy":
之后的所有数字
如果你能帮助我,我会很高兴,干杯。
这是结构化的文本,所以你不妨利用结构化,例如:
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
文件:
import json
import glob
folder_path = 'D:\path'
for filename in glob.glob(os.path.join(folder_path, '*.geo.json')):
coords = json.load(open(filename, 'r'))
print(
coords['location']['lat'],
coords['location']['lng'],
coords['accuracy']
)
# 50.0918805 14.4261817 29.1671027
我得到了带有文本行的 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(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
但实际上缺少数字,问题出在日志中,为 latitude/longtitude 生成的数字并不总是相同的长度,我从第一个字符的位置开始打印数字。 我试图只打印数字并用“,”分隔它们,但我不想要更多的数字。
我被卡住了,无法弄清楚如何打印 "lat":
和 "lng":
之后但不是 "accuracy":
如果你能帮助我,我会很高兴,干杯。
这是结构化的文本,所以你不妨利用结构化,例如:
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
文件:
import json
import glob
folder_path = 'D:\path'
for filename in glob.glob(os.path.join(folder_path, '*.geo.json')):
coords = json.load(open(filename, 'r'))
print(
coords['location']['lat'],
coords['location']['lng'],
coords['accuracy']
)
# 50.0918805 14.4261817 29.1671027