簡短版本:我正在處理的 CSV 檔案偶爾包含包含逗號的文字字串。
我編寫的用於打開此表的 JSL 非常整齊地在逗號處分割字串,並將逗號後面的部分發送到下一個資料列中 - 正是它不去的地方。
開啟此文件時 Excel 會正確顯示。
有沒有辦法讓 JMP / JSL 將這個逗號視為一個字元而不是分隔符號?
或者換句話說:有沒有辦法調整下面的腳本,以便引號內的逗號將被忽略為潛在的分隔符號?
細節:
JMP 13.2.1,64 位,在 Windows 7 上運作。
csv 文件摘錄:
在記事本中將其作為文本打開,有問題的行包含:
....11:00,跳過,「丟掉的光,他們會放上另一盞光」,,,,
注意:據我所知,測試條目周圍的雙引號是資料中唯一的雙引號。
Excel 顯示的內容以及我希望擺脫 JMP 的內容:
| 第11欄 | 第12欄 |
| 評論 | 害蟲發現 |
| 丟掉一盞燈,他們會再放一盞燈 | |
JMP 給我的是:
| 第11欄 | 第12欄 |
| 評論 | 害蟲發現 |
| 光被丟掉 | 他們還會再亮起一盞燈 |
第 12 欄/害蟲調查結果通常會說明發現的昆蟲、老鼠等,不應顯示評論的後半部。 該行應該為空白。
我用來開啟表格的腳本如下:
Open(
qfull,
columns(
Column( "Company", Character, "Nominal" ),
Column( "Address", Character, "Nominal" ),
Column( "City", Character, "Nominal" ),
Column( "State", Character, "Nominal" ),
Column( "Zip", Character, "Nominal" ),
Column( "Area", Character, "Nominal" ),
Column( "Device Type", Character, "Nominal" ),
Column( "Device Name", Character, "Nominal" ),
Column( "Date", Numeric, Informat( "m/d/y h:m" ), "Continuous", Format( "ddmonyyyy", 19 )),
Column( "Date", Character, "Nominal"),
Column( "Activity", Character, "Nominal" ),
Column( "Comment", Character, "Nominal" ),
Column( "Pest Findings", Character, "Nominal" ),
Column( "Questions", Character, "Nominal" ),
Column( "Materials", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
有沒有辦法調整此腳本,以便引號內的逗號將被忽略為潛在的分隔符號?
這是一個錯誤,JMP 不應分解值的引用部分。 不幸的是,在該問題得到修復之前,JMP 14.1 將會出現。
布萊恩·科科倫
JMP開發
我有類似的問題,但不是在腳本環境。 我正在打開連結到 CSV 資料檔案的 Triple-S 檔案。 根據 CSV 標準正確引用開放式數據,但 JMP 仍將引用字串內的逗號解釋為欄位分隔符號。
例如
123456,1,"Lorem ipsum dolor sat amet, consectetuer...",3,5
被解析為 6 列,而不是正確的 5 列。
我已經在首選項下使用了文字檔案的各種導入設置,但沒有效果。
任何想法將不勝感激。 謝謝!
嘗試用
Strip Quotes<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN>