简短版本:我正在处理的 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>