簡體   English   中英

沒有換行符的JSON文件,無法將文件導入SAS

[英]JSON-file without line breaks, cant import file to SAS

我有一個很大的json文件(250 Mb),在記事本或SAS中打開文件時沒有換行符。 但是,如果我在寫字板中打開它,則會得到正確的換行符。 我想這可能意味着json文件使用unix換行符,notapad無法讀取,但wordpad可以從我已讀取的內容中讀取。

我需要將文件導入SAS。 進行這種遷移的一種方法是在寫字板中打開文件,將其另存為文本文件,有望保留正確的換行符,以便我可以在SAS中讀取文件。 我已經嘗試讀取文件,但是沒有換行符,我只能得到第一個觀察值,而我不能獲得找到下一個觀察值的程序。

我曾嘗試讓寫字板保存文件,但是每次寫字板都會崩潰,可能是由於文件大小所致。 還嘗試通過powershell進行此操作,但是一旦打開文件后就無法弄清楚如何保存文件,並且我沒有理由在點按鼠標並嘗試單擊它時看到寫字板崩潰而無法正常工作。

還有另一種方法可以修復此json文件嗎? 有沒有辦法查看換行符的unix代碼並將其替換為Windows換行符,或者有這種效果?

編輯:我嘗試添加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) ,但這也不起作用。

我猜您正在使用Windows,請嘗試:

TYPE input_filename | MORE /P > output_filename

這應該用Windows / Dos One取代Unix樣式的文本文件。

250 MB不太長,不能視為一條記錄。

data want ;
  infile json lrecl=250000000; *250 Mb ;
  input @'"Id":' ID :$9. @@;
run;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM