以下是我需要转换的.log文件的示例。我正在使用Node。
{"test": "data", "test1": 123, "foo": "feel me??"}
{"test": "data", "test1": 123, "foo": "feel me??"}
{"test": "data", "test1": 123, "foo": "feel me??"}
我使用此代码导入它。
let data = fs.readFileSync(log_path, 'utf8', function(err, data){
if (err) throw err;
let tweets = data.split('\n').map(line => JSON.parse(line));
return tweets;
fs.close(data, (err) => {
console.log(err);
})
})
正如您所看到的,它没有用逗号分隔,因此不是JSON格式。我正在尝试读取该文件,然后将其拆分为新行,但这似乎并没有起作用。
答案 0 :(得分:1)
假设"feel me??"
是一个属性,你可以split
向上行,然后map
将它们作为一个对象数组:
const text = ` {"test": "data", "test1": 123, "foo": "feel me??"}
{"test": "data", "test1": 123, "foo": "feel me??"}
{"test": "data", "test1": 123, "foo": "feel me??"}`;
const arrOfObjs = text.split('\n')
.map(line => JSON.parse(line));
console.log(arrOfObjs);
另一个问题是顾名思义readFileSync
同步读取文件 。它不接受这样的回调。将您的文件读取代码更改为:
let data = fs.readFileSync(log_path, 'utf8');
// do stuff with the `data` string
请记住,因为您没有使用流you don't need fs.close
。
答案 1 :(得分:0)
我个人使用torch.Size([2941])
包来获取read-last-lines
文件的最后几行。
要使其正常工作,我必须从接受的答案中稍微修改代码,这对我自己有很大的帮助。如果有人遇到类似问题,我将在此处添加它。
log
希望有帮助。