簡體   English   中英

從mysql打印/解析csv blob文件

[英]Printing/Parsing csv blob file from mysql

查詢數據庫中的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的純文本。

首先,您所擁有的類型似乎是一個字節數組。 為了進行測試,我運行以下命令來獲取與您相同的字節數組:

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')更易於使用格式,即字符串: results = raw_results.decode('utf-8')

這應該做。

展望未來,您可能需要使用csv模塊讀取您的csv字符串,這樣您就不必處理引號等問題。 但是,csv閱讀器通常會從文件中讀取內容,但是它可以與遍歷行的所有內容一起使用。 因此,您可能想要執行這樣的操作以實際處理數據。 有關示例,請參見Python csv字符串數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM