【问题标题】:Printing/Parsing csv blob file from mysql从mysql打印/解析csv blob文件
【发布时间】:2016-02-03 02:30:26
【问题描述】:

查询数据库中的blob文件,是否可以从blob文件而不是数组中读取为文本

这是我的简单代码:

sql= "select blob_file as blob_file from Blob_Table limit 1"                                          
cursor.execute(sql)
result = cursor.fetchall()

for i in result :
    print i["file_backup"]

我的输出是这样的,一个 array.array 类型:

array('b', [67, 97, 114, 114, 105, 101, 114, 32, 73, 68, 44, 83, 116, 97, 103, 101, 32, 82, 111, 119, 44, 83, 116, 97, 103, 101, 32, 67, 111, 108, 117, 109, 110, 44, 68, 97, 116, 101, 44, 84, 105, 109, 101, 44, 65, 65, 66, 32, 50, 76, 32, 68, 101, 112, 116, 104, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 82, 97, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 68, 101, 112, 116, 104, 44, 65, 65, 66, 32, 65, 66, 83, 32, 81, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 70, 105, 116, 44, 67, 111, 110, 102, 105, 103, 32, 110, 97, 109, 101, 40, 110, 97, 109, 101, 32, 111, 110, 108, 121, 41, 44, 65, 65, 66, 32, 65, 66, 83, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 50, 110, 100, 32, 76, 118, 108, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 82, 113, 44, 65, 65, 66, 32, 65, 66, 83, 32, 81, 117, 97, 100, 32, 67, 114, 111, 119, 110, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 70, 105, 116, 32, 81, 117, 97, 108, 105, 116, 121, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 82, 111, 116, 97, 116, 105, 111, 110, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 88, 32, 84, 114, 97, 110, 108, 97, 116, 105, 111, 110, 44, 84, 101, 4, 54, 13, 10])

可以转换这些,因为我的 blob 文件是来自 csv 的纯文本..

【问题讨论】:

    标签: python mysql blob


    【解决方案1】:

    首先,您拥有的类型似乎是一个字节数组。出于测试的目的,我运行以下命令来获取与您相同的字节数组:

    raw_results = bytearray([67, 97, 114, 114, 105, 101, 114, 32, 73, 68, 44, 83, 116, 97, 103, 101, 32, 82, 111, 119, 44, 83, 116, 97, 103, 101, 32, 67, 111, 108, 117, 109, 110, 44, 68, 97, 116, 101, 44, 84, 105, 109, 101, 44, 65, 65, 66, 32, 50, 76, 32, 68, 101, 112, 116, 104, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 82, 97, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 68, 101, 112, 116, 104, 44, 65, 65, 66, 32, 65, 66, 83, 32, 81, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 70, 105, 116, 44, 67, 111, 110, 102, 105, 103, 32, 110, 97, 109, 101, 40, 110, 97, 109, 101, 32, 111, 110, 108, 121, 41, 44, 65, 65, 66, 32, 65, 66, 83, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 50, 110, 100, 32, 76, 118, 108, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 80, 105, 120, 32, 67, 111, 117, 110, 116, 44, 65, 65, 66, 32, 67, 97, 118, 105, 116, 121, 32, 82, 113, 44, 65, 65, 66, 32, 65, 66, 83, 32, 81, 117, 97, 100, 32, 67, 114, 111, 119, 110, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 70, 105, 116, 32, 81, 117, 97, 108, 105, 116, 121, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 82, 111, 116, 97, 116, 105, 111, 110, 44, 84, 101, 109, 112, 108, 97, 116, 101, 32, 88, 32, 84, 114, 97, 110, 108, 97, 116, 105, 111, 110, 44, 84, 101, 4, 54, 13, 10])

    现在我想把它变成一个更容易使用的格式,那就是一个字符串: results = raw_results.decode('utf-8')

    应该这样做。

    以后您可能希望使用csv 模块来读取您的csv 字符串,这样您就不必处理引号逗号等问题。但是,csv 阅读器通常从文件中读取,但它适用于遍历行的任何内容。所以你可能想做这样的事情来实际处理数据。示例见Python csv string to array

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      相关资源
      最近更新 更多