【问题标题】:Converting blob data into CSV file将 blob 数据转换为 CSV 文件
【发布时间】:2013-09-09 12:33:19
【问题描述】:

我正在尝试使用 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

首先尝试将其上传到数据存储区时出现空字符错误,然后使用删除它们

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的提示。添加引号解决了逗号问题,但是现在我应该如何处理 blob 中的其他引号?
    猜你喜欢
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 2015-02-17
    • 2019-04-13
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多