将 .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的主要内容,如果未能解决你的问题,请参考以下文章