我有一个非常混乱的 .txt 文件,里面有很多原始数据。这是一行很长的内容,不断重复位置数据:
\"Locations\":[{\"lat\":\"37.77160263061523\",\"lng\":\"-120.85061645507812\",\"city\":\"Oakdale\",\"poi\":\"\",\"pindata_id\":\"194395\"}]},{\"User\":{\"id\":\"<censored>\",\"username\":\"<censored>\"},\"Pindata\":{\"id\":\"194739\",\"date\":\"2018-05-18\",\"country\":\"US\",\"title\":\"Let's go!\"}
...然后它会重复很多次
现在我想要一个脚本或工具,将所有这样的数据提取到 Excel 列和单元格中。因此,从上面的行开始,使其如下所示:
Latitude Longitude City Date Title
37.77160263061523 -120.85061645507812 Oakdale 2018-05-18 Let's go!
etc.
etc.
我该如何做这样的事情?
答案1
在具有正则表达式功能的编辑器(Emeditor、BBedit 等)中打开文本文件,然后执行以下正则表达式搜索:
.+lat\\":\\"(.+)\\",\\"lng\\":\\"(.+)\\",\\"city\\":\\"(.+)\\",\\"poi.+date\\":\\"(.+)\\",\\"country.+title\\":\\"(.+)\\"\}
并将其替换为:
$1\t$2\t$3\t$4\t$5
这将为您提供一个制表符分隔的文件,然后您可以在 Excel 中打开该文件(以制表符分隔,因为如果标题包含逗号,则逗号分隔可能会遇到问题。
答案2
这是 JSON 格式,您应该能够使用 JSON 库来提取数据。我在工作中使用这个:
https://github.com/VBA-tools/VBA-JSON/blob/master/JsonConverter.bas
请注意,在这个库中,JSON 数组( [ 和 ] 之间的内容)被解析为 VBA Collection
,而 JSON 对象( { 和 } 之间)被解析为 VBA Variant
。
答案3
有一个简单的免费工具可以将 GPS 数据文件转换为 Excel - GPSBabel。
https://www.gpsbabel.org/download.html
这是一个免费项目,所以请为这个非常有用的工具捐赠一些资金。