Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从csv转换blob,作为字符串导入_Python_Csv_Import_Runtime Error_Blob - Fatal编程技术网

Python 从csv转换blob,作为字符串导入

Python 从csv转换blob,作为字符串导入,python,csv,import,runtime-error,blob,Python,Csv,Import,Runtime Error,Blob,我正在尝试读取存储在csv文件中的Blob数据。我可以以字符串格式导入它,但是如果我想将numpy.frombuffer与dtype='一起使用,则显示错误的代码块实际上并不显示异常,仅显示位置,是否可以包含此部分?此外,该文件摘录看起来不像csv文件,这确实是您要查找的类型,还是您刚刚将其放入电子表格中?@CmdCoder858舒尔,抱歉:第52行,在data=np.frombuffer中(blob_data,dtype=)我没有找到太多关于缓冲区编码的信息,但我认为最有可能的原因是数据损坏或

我正在尝试读取存储在csv文件中的Blob数据。我可以以字符串格式导入它,但是如果我想将numpy.frombuffer与dtype='一起使用,则显示错误的代码块实际上并不显示异常,仅显示位置,是否可以包含此部分?此外,该文件摘录看起来不像csv文件,这确实是您要查找的类型,还是您刚刚将其放入电子表格中?@CmdCoder858舒尔,抱歉:第52行,在data=np.frombuffer中(blob_data,dtype=)我没有找到太多关于缓冲区编码的信息,但我认为最有可能的原因是数据损坏或数据类型无效。我建议确保数据完整,并可能尝试使用不同的数据类型,而不是“@CmdCoder858”。数据完整。我尝试使用二进制“b”,但整数是不完整的太小了。困难在于如果我使用read_CSV的输出,它看起来像b'\xfb\xc3a?\但我不能在np.frombuffer函数中使用它。如果我通过bytes()转换它看起来像是b'b'\\xfb\\…所以每个\都是加倍的。但是我不知道如何告诉python read_CSV的输出是类型字节而不是字符串。你知道我的意思吗?如果函数需要字符串,那么这可能就是你应该给它的。你正在将blob_数据转换为字节。如果你把它保留为字符串,它可能会工作吗?
line 52, in <module>
data = np.frombuffer(blob_data, dtype='<f4') #<f4
ValueError: buffer size must be a multiple of element size
import numpy as np
import datetime
import math
import csv
import pandas
from binascii import unhexlify
#import mysql.connector
# from pylab import figure, plot, show, legend, xlabel, ylabel
from matplotlib import pyplot as plt


def read_CSV(dataid):
    with open('spectrometer2.csv') as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=',')
            line_count = 0
            result = bytes('1',encoding='UTF-8')
            for row in csv_reader:
                if line_count > 0:
                    #print(row[0])
                    if str(dataid) == str(row[0]):
                        result = row[3][2:-1]
                        print('FOUND####################################')
                        print(str(row[3])[2:-1])
                        break
                line_count += 1
            print(str(type(result)))
            return result


####### MAIN PROGRAM #######

#spectrumRange = np.arange(10, 11011, 200)
spectrumRange = np.arange(8000, 9000, 200) # Auszug zur Leistungsoptimierung im Test

query_init = "SELECT * FROM `spectrometer2` WHERE data_id="

plt.figure()

for spectrum_id in spectrumRange:
    spectrometerquery = query_init + str(spectrum_id) + ";"
    print("Current data ID: " + str(spectrum_id))
    #y_stream = interact_with_MySQL("database_name", spectrometerquery)

    blob_data = read_CSV(spectrum_id)
    #print(binary2int(blob_data))    
    if(blob_data != 0):

        blob_data = bytes(blob_data,encoding = 'UTF-8')
        
        print(blob_data)
        data = np.frombuffer(blob_data, dtype='<f4') #<f4

        print(data)
        plt.plot(data)

plt.title('Spectrometer 2 data')

legend = []
for x in spectrumRange:
    legend.append(('data id:', x))

plt.legend(legend)
plt.show()