我使用CSV格式将数据从SAS传递到Python。SAS使用的报价格式有问题。像"480 КЖИ" ОАО
这样的字符串没有被引用,但是Python csv
模块认为它们是。在
dat = ['18CA4,"480 КЖИ" ОАО', '1142F,"""Росдорлизинг"" Российская дор,лизинг,компания"" ОАО"']
for i in csv.reader(dat):
print(i)
>>['18CA4', '480 КЖИ ОАО']
>>['1142F', '"Росдорлизинг" Российская дор,лизинг,компания" ОАО']
第二个字符串可以,但是我需要480 КЖИ ОАО
字符串为"480 КЖИ" ОАО
。在csv
模块中找不到这样的选项。也许可以强制proc export
引用所有"
字符?在
UPD:这里有一个类似的问题Python CSV : field containing quotation mark at the beginning
UPD2:@昆廷已经询问了细节。这是:我有SAS8.2连接到9.1服务器。我用proc format cntlout=..; proc download..
从服务器端下载自定义格式的数据。所以我得到了一个类似字典的数据集<key>, <value>
。然后我使用proc export
通过DDE接口将这个数据集以CSV格式传递给Python。但据我所知,proc export
只引用包含分隔符(逗号)的字符串。所以我想,我需要SAS引用引号,或者Python只引用那些包含逗号的字符串。在
更新:通过DDE从proc export
切换到直接读取数据集,使用修改后的SAS7BDAT Python模块极大地提高了性能。我解决了上面的问题。
如果值中已经有引号,SAS将添加额外的引号。在
生成此结果:
^{pr2}$也许在从SAS到Python的流程中,引号被删除了?尝试将CSV文件保存到磁盘并让Python从磁盘文件中读取。在
相关问题 更多 >
编程相关推荐