将blob数据转换为CSV文件

时间:2013-09-05 15:26:03

标签: python google-app-engine csv google-cloud-datastore blob

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

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

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

- 更新 -

转换的sql行,其中包含pdf文件,如下所示:

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 + "\""

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

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

1 个答案:

答案 0 :(得分:0)

通常情况下,如果CSV字段中有逗号,则该字段将包含在“s。python csv包中处理此类内容,因此如果您只是将字符串拆分为”,“那么切换到csv.reader可能会有效。

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