error Traceback (most recent call last) d:\TDXDATA\tes111t.py in line 73 70 day_data = read_data(r"D:\Quant1\sz000001.day") 72 # 读取1分钟线数据 ---> 73 min1_data = read_data(r"D:\Quant1\sz000001.lc1") 75 # 读取5分钟线数据 76 min5_data = read_data(r"D:\Quant1\sz000001.lc5") d:\TDXDATA\tes111t.py in line 62, in read_data(filename) 60 df = parse_day_data(data) 61 elif filename.endswith('.lc1'): ---> 62 df = parse_1min_data(data) 63 elif filename.endswith('.lc5'): 64 df = parse_5min_data(data) d:\TDXDATA\tes111t.py in line 27, in parse_1min_data(data) 25 df = pd.DataFrame(columns=['date', 'time', 'open', 'high', 'low', 'close', 'volume', 'amount']) 26 for i in range(len(data)): ---> 27 row_data = struct.unpack('iiiiifdi', bytes(data[i*32:(i+1)*32])) 28 date = str(row_data[0]) 29 time = '{:04d}'.format(row_data[1]) error: unpack requires a buffer of 36 bytes
时间: 2024-03-07 08:53:30 浏览: 102
根据错误提示,似乎是在读取1分钟线数据时出现了错误。具体来说,`struct.unpack()` 函数需要一个长度为36字节的缓冲区,但是传入的数据不够长,导致出现了错误。可能是数据文件本身存在问题,或者在读取数据时出现了一些意外情况。建议检查数据文件的完整性和正确性,以及代码中读取数据的逻辑是否正确。
相关问题
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) d:\TDXDATA\tes111t.py in line 70 67 return df 69 # 读取日线数据 ---> 70 day_data = read_data(r"D:\Quant1\sz000001.day") 72 # 读取1分钟线数据 73 min1_data = read_data('1分钟线数据文件路径') d:\TDXDATA\tes111t.py in line 60, in read_data(filename) 58 data = f.read() 59 if filename.endswith('.day'): ---> 60 df = parse_day_data(data) 61 elif filename.endswith('.lc1'): 62 df = parse_1min_data(data) d:\TDXDATA\tes111t.py in line 12, in parse_day_data(data) 10 df = pd.DataFrame(columns=['date', 'open', 'high', 'low', 'close', 'volume', 'amount']) 11 for i in range(len(data)): ---> 12 row_data = struct.unpack('iiiiifd', data[i]) 13 date = str(row_data[0]) 14 open_price = row_data[1] / 100.0 TypeError: a bytes-like object is required, not 'int'
这是一个Python的错误提示,看起来是在读取某个文件时出现了错误。具体来说,代码中调用了一个叫做parse_day_data的函数,该函数以二进制形式读取一个文件,然后解析其中的数据。但是,在解析数据时出现了问题,似乎是由于读取的数据类型不正确导致的。你可以检查一下代码,确认读取的数据类型是否正确。
Traceback (most recent call last): File "sub.py", line 34, in <module> pub_2= rospy.Publisher("/cmd_bucket",std_msgs.msg.Int32,queue_size=10) NameError: name 'std_msgs' is not defined
这个错误提示表明你在代码中尝试使用`std_msgs`包,但是Python解释器找不到这个包的定义。
你需要在代码中导入`std_msgs`包,例如:
```
import rospy
from std_msgs.msg import Int32
pub_2 = rospy.Publisher("/cmd_bucket", Int32, queue_size=10)
```
在这里,我们使用`from std_msgs.msg import Int32`导入了`Int32`消息类型,并将其作为发布器的消息类型,这样你就可以成功创建发布器并发布整型消息了。
阅读全文