CSV引用格式错误

2024-09-21 03:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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模块极大地提高了性能。我解决了上面的问题。


Tags: 模块csv数据字符串infor格式export
1条回答
网友
1楼 · 发布于 2024-09-21 03:21:23

如果值中已经有引号,SAS将添加额外的引号。在

data _null_;
  file log dsd ;
  string='"480 КЖИ" ОАО';
  put string;
run;

生成此结果:

^{pr2}$

也许在从SAS到Python的流程中,引号被删除了?尝试将CSV文件保存到磁盘并让Python从磁盘文件中读取。在

相关问题 更多 >

    热门问题