0

我正在尝试使用 python 将 blob 数据从 ms-sql 转换为 csv 文件。Blob 数据本身有许多其他逗号,这让我无法正确转换它。

有没有办法在 blob 中转义逗号,但在需要时将其正确上传到另一个数据库。

我正在为 GAE 项目执行此操作,并从 ms-sql db 下载表以上传 GAE 数据存储。既然它也支持xml,我应该开始使用它吗?

- 更新 -

保存 pdf 文件的转换后的 sql 行如下所示:

ObjectID,FileData,Extension,
2846748,"%PDF-1.3
%
3 0 obj
<<
/Producer (PDF-XChange 3.60.0102 \(Windows\))
/Author (HA)
/Creator (ABBYY PDF Transformer 2.0)
/CreationDate (D:20130612093531+02'00')
>>
endobj
5 0 obj
<<
/Type /XObject
/Subtype /Image
/Width 150
/Height 112
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/Length 3682
/Filter [/DCTDecode]
>>
stream
ÿØÿàJFIFÿÛC



%# , #&')*)-0-(0%()(ÿÛC...goes and goes on...", .PDF

在第一次尝试将其上传到数据存储时,我得到了 null char 错误,然后使用删除了它们

temp = str(rows[i][j]).replace("\x00", "")

然后我添加了@Greg 提供的引号

if "," in temp:
    temp = "\"" + temp + "\""

进行此更改后,我尝试将其上传到数据存储并得到string is long than 500 char 错误。对于 FileData 属性,我在 bulkloader.yaml 中有export_transform: transform.blob_to_file('Filename', 'AttachmentBlobs')行,但它被视为字符串。

而且我发现 blob 数据应该上传到 GAE blob 数据存储区,我不是以 html 表单的形式进行这些事务,而是以 python 脚本的形式进行这些事务,所以现在开始将该数据上传到 blob 数据存储区。

4

1 回答 1

0

通常,如果 CSV 字段中包含逗号,则该字段将包含在 "s 中。python csv包处理此类事情,所以如果您只是在 "," 上拆分字符串,那么切换到 csv.reader 会可能工作。

否则,我认为您需要编辑您的问题以包含您的输入示例以及您拥有的代码并没有按照您的意愿行事。

于 2013-09-05T17:05:42.910 回答