TxT文件转json文件

实际应用中很多设备导出的数据均为表格形式TXT文件,为了实际使用方便,可将内容转换成json文件,方便使用,java代码如下

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;


public class ExcelReadUtil {

    public static void main(String [] args){
        System.out.println();
        JSONArray jsonArray = changer("E:\\work\\Missile-Velocity.txt","time");
        try {
            FileWriter file = new FileWriter("F:\\test.json");
            file.write(jsonArray.toString());
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static JSONArray changer(String filePath, String titleKey){
        JSONArray result = new JSONArray();
        File file = new File(filePath);
        ArrayList<String> title = new ArrayList<>();
        if(file.exists()){
            try {
                Scanner scanner = new Scanner(file);
                while (scanner.hasNextLine()){
                    String lineData = scanner.nextLine().trim();
                    if(StringUtils.contains(lineData,titleKey)){
                        String [] datas = lineData.split("\\s{3,}");
                        for(String data : datas){
                            title.add(data);
                        }

                    }else if(title.size() > 0){
                        String [] datas = lineData.split("\\s{3,}");
                        JSONObject dataItem = new JSONObject();
                        dataItem.put("ax",0);
                        dataItem.put("ay",0);
                        dataItem.put("az",0);
                        dataItem.put("epochTime",datas[0]);
                        for(int i = 1; i < datas.length; i++){
                            dataItem.put(title.get(i),Double.valueOf(datas[i]) * 1000);
                        }
                        result.add(dataItem);
                    }
                }
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
        return result;
    }
}
### 将TXT文件换为JSON文件 为了实现从TXT文件JSON文件换,可以遵循特定的数据处理流程。通常情况下,TXT文件中的数据需要先被读取并解析成合适的结构化形式,之后再将其序列化为JSON格式。 #### 读取TXT文件内容 通过Python内置函数`open()`来打开目标TXT文件,并利用`.readlines()`方法逐行读入文本内容。这一步骤能够获取原始未加工的文字资料[^1]。 ```python with open('data.txt', 'r') as file: lines = file.readlines() ``` #### 解析与整理数据 根据实际需求定义一个字典列表或其他适当的数据容器用于存储经过解释后的信息片段。假设每行为一条记录,则可按照如下方式构建: ```python data_list = [] for line in lines: # 去除换行符和其他不必要的空白字符 cleaned_line = line.strip() # 如果有分隔符(比如逗号),可以根据它分割字段;这里简单起见假定一行只有一个键值对 key_value_pair = cleaned_line.split(':') data_dict = { "key": key_value_pair[0], "value": ":".join(key_value_pair[1:]) } data_list.append(data_dict) ``` 上述代码段展示了当每一行代表单一属性及其对应值得情况下的基本处理逻辑[^2]。 #### 序列化至JSON文件 最后借助于`json`模块完成最终的目标——把准备好的数据对象写入新的JSON文档中去。 ```python import json output_file_path = 'output.json' with open(output_file_path, 'w') as outfile: json.dump(data_list, outfile, ensure_ascii=False, indent=4) ``` 这段脚本会创建一个新的名为`output.json`的文件,在其中保存由先前步骤产生的所有条目,同时设置参数`ensure_ascii=False`允许非ASCII编码字符正常显示,而`indent=4`则使得输出更加美观易读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值