将 .txt 文件转换为 JSON

Posted

技术标签:

【中文标题】将 .txt 文件转换为 JSON【英文标题】:Convert .txt file to JSON 【发布时间】:2017-02-09 18:16:05 【问题描述】:

我想将一个相当杂乱无章的 text 文件转换为 JSON 格式。我希望能够使用城市 ID 信息。无论如何我可以将其转换为 JSON 吗?

更新:一段时间后我也找到了这个解决方案。获取任何制表符分隔文本文件的 JSON 的非常简单的方法。

https://shancarter.github.io/mr-data-converter/

【问题讨论】:

请理解.txt是扩展名,json是数据格式。为了将任何内容转换为json,必须存在某种关系,例如key-value 对、table-column 等。非结构化文本文件不能直接转换为json 格式。 此外,请在问题中写下您到目前为止所做或尝试过的事情 因此,如果我找到看起来像 cityname: cityID 的 .txt 文件,请在列表下方。那可以转换吧? 【参考方案1】:

你可以尝试使用tsv2json这个工具可以从stdin读取一个tsv文件,并将一个json文件写入stdout。

它是在源文件中分发的,要编译它你需要下载D compiler然后运行dmd tsv2json.d

如果您有更复杂的任务,还有另一个名为 tsv-utils 的工具

【讨论】:

不知道这意味着什么,但至少现在我有了一个起点。谢谢。 如果你没有编程经验可以从骑这本书开始ddili.org/ders/d.en你的任务很简单。您只需要基本知识 好的,我希望有一种方法可以将文本文件中的无组织字符串转换为 JSON 格式。一种创建结构的方法......所以我会研究这个。谢谢你【参考方案2】:

在nodejs中TSV到JSON

var file_name = 'city_list.txt';

var readline = require('readline');
var fs = require('fs');

var lineReader = readline.createInterface(
    input: fs.createReadStream(file_name)
);

var isHeader = false;
var columnNames = [];

function parseLine(line) 
    return line.trim().split('\t')


function createRowObject(values) 
    var rowObject = ;

    columnNames.forEach((value,index) => 
        rowObject[value] = values[index];
    );

    return rowObject;


var json = ;
json[file_name] = [];

lineReader.on('line', function (line) 
    if(!isHeader) 
        columnNames = parseLine(line);
        isHeader = true;
     else 
        json[file_name].push(createRowObject(parseLine(line)));
    
);

lineReader.on('close', function () 
    fs.writeFileSync(file_name + '.json', JSON.stringify(json,null,2));
);

【讨论】:

以上是关于将 .txt 文件转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 将 txt 数据文件转换为结构化 JSON

将其字段中带有逗号的 .csv 文件转换为 JSON/TXT

固定格式TXT转json文件

深度学习数据txt转json

如何把一个json文件转换成字符串

目标检测数据集转换 json文件转换为txt文件格式