我有一个大的json文件(250 Mb),在打开记事本或SAS文件时没有换行符。但是如果我在Wordpad中打开它,我会得到正确的换行符。我想这可能意味着json文件使用unix换行符,notapad无法读取,但是wordpad可以从我读过的内容中读取。
我需要将文件导入SAS。执行此迁移的一种方法是在wordpad中打开文件,将其另存为文本文件,这样可以保留正确的换行符,以便我可以在SAS中读取该文件。我试过读过这个文件,但是没有换行符,我只得到了第一个观察结果,我无法让程序找到下一个观察结果。
我尝试使用wordpad保存文件,但每次都会出现wordpad崩溃,可能是因为文件大小。还尝试通过PowerShell执行此操作,但无法弄清楚如何在打开文件时保存文件,并且当我通过点击点击尝试它时,我看不出为什么它应该看起来像wordpad崩溃。
还有其他方法来修复这个json文件吗?有没有办法查看换行代码的换行符,并用windows换行符替换它,或者有什么效果?
编辑:
我尝试在文件名和infile中添加TERMSTR=LF
选项,但没有任何运气:
filename test "C:\path";
data datatest;
infile test lrecl = 32000 truncover scanover TERMSTR=LF;
input @'"Id":' ID $9.;
run;
但是,如果我手动编辑文件的一小部分以换行,则可以正常工作。 TERMSTR
选项对我来说似乎没什么作用
编辑2:
使用RECFM=F
data datatest;
infile test lrecl = 42000 truncover scanover RECFM=F ;
input @'"Id":' ID $9.;
run;
编辑3:
事实证明它毕竟没有解决问题。 RECFM=F
表示所有记录都有固定的长度,而不是,所以我的数据会混淆并且会跳过很多信息。尝试RECFM=V(ariable)
,但这也不起作用。
答案 0 :(得分:0)
我猜你正在使用Windows,所以试试:
TYPE input_filename | MORE /P > output_filename
这应该用windows / dos one替换unix样式的文本文件。
答案 1 :(得分:0)
250 MB不太长,不能作为单一记录处理。
data want ;
infile json lrecl=250000000; *250 Mb ;
input @'"Id":' ID :$9. @@;
run;