tushare接口get_realtime_quotes报错:AssertionError: 33 columns passed, passed data had 34 columns

tushare接口get_realtime_quotes,今天报错了:

AssertionError: 33 columns passed, passed data had 34 columns

看了一下源码,在获取股票代码为600063时,报了错。

dataframe5 = ts.get_realtime_quotes('600063')

与正常的代码比较

dataframe5 = ts.get_realtime_quotes('000001')

定位是在list转换成dataframe是出错了。

df = pd.DataFrame(data_list, columns=ct.LIVE_DATA_COLS)

其中,LIVE_DATA_COLS的定义是有33个元素:

LIVE_DATA_COLS = ['name', 'open', 'pre_close', 'price', 'high', 'low', 'bid', 'ask', 'volume', 'amount',
                  'b1_v', 'b1_p', 'b2_v', 'b2_p', 'b3_v', 'b3_p', 'b4_v', 'b4_p', 'b5_v', 'b5_p',
                  'a1_v', 'a1_p', 'a2_v', 'a2_p', 'a3_v', 'a3_p', 'a4_v', 'a4_p', 'a5_v', 'a5_p', 'date', 'time', 's']

报错是,data_list的值:

"皖维高新,3.060,3.090,3.050,3.090,3.030,3.050,3.060,15402659,47026593.000,86945,3.050,229700,3.040,345100,3.030,430300,3.020,412000,3.010,274500,3.060,538593,3.070,224300,3.080,190700,3.090,295800,3.100,2019-08-01,15:00:00,00,";

正常的data_list的值:

"平安银行,14.060,14.130,14.100,14.190,13.940,14.100,14.110,52798128,742308285.200,71100,14.100,64800,14.090,61000,14.080,181435,14.070,676618,14.060,224200,14.110,99100,14.120,103000,14.130,102700,14.140,148346,14.150,2019-08-01,15:00:03,00";

通过对比,很明显,报错时,data_list的值,最后多了一个逗号,dataframe认为有34个元素,比LIVE_DATA_COLS的定义是有33个元素多一个,不匹配,所以报错了。

问题找到了,解决办法有无数个,我选择简单的那个,将data_list只取33个元素:

    for index, row in enumerate(data):
        if len(row)>1:
            data_list.append([astr for astr in row.split(',')])
            syms_list.append(syms[index])
    if len(syms_list) == 0:
        return None
    #AssertionError: 33 columns passed, passed data had 34 columns
    for i in range(0,len(data_list)):
        data_list[i] = data_list[i][0:len(ct.LIVE_DATA_COLS)]

    df = pd.DataFrame(data_list, columns=ct.LIVE_DATA_COLS)

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: net_dvr_get_realtime_thermometry是一种网络数字视频录像机(DVR)的功能,用于获取实时测温数据的方法。 实时测温是一种通过红外技术来测量物体温度的方法。通过连接红外热像仪和DVR,可以实时获取物体的温度信息。net_dvr_get_realtime_thermometry就是DVR提供的用于获取这些温度数据的函数。 实时测温在许多领域中非常有用,特别是在安防监控和火灾预警方面。比如,在监控系统中,通过设置预设温度阈值,当物体的温度超过或低于设定的温度时,可以触发报警或其他应急措施。这对于检测异常情况,如火灾、电器过热等非常重要。 使用net_dvr_get_realtime_thermometry函数,用户可以轻松地获取红外热像仪传输的实时测温数据。该函数通常需要输入一些参数,如设备ID、通道号等,以便能够正确地获取所需温度数据。 总之,通过net_dvr_get_realtime_thermometry函数,用户可以实时获取红外热像仪所测量的物体温度数据,从而能够更好地监测和控制监控系统中的温度变化,提供更安全和可靠的环境。 ### 回答2: net_dvr_get_realtime_thermometry是一个函数,主要用于从网络视频录像机(DVR)中获取实时测温数据。 该函数可以通过网络连接到DVR,并从DVR获取实时的温度数据。实时测温数据是指在录像机所监测的区域中,每个像素点的温度数值。 使用该函数,可以实现对监控区域中的温度进行实时监测和分析。通过获取实时测温数据,我们可以判断监控区域中是否存在异常温度,例如火灾、漏电等安全隐患,以及判断温度变化的趋势,以便做出相应的处理和应对措施。 具体使用该函数需要传入一些参数,例如DVR的用户ID、通道号、温度数据缓冲区等。通过调用该函数,我们可以获取DVR实时的测温数据,并进行后续处理。 总之,net_dvr_get_realtime_thermometry是一个非常实用的函数,可以帮助我们从网络视频录像机中获取实时的温度数据,对监控区域中的温度变化进行实时监测和分析,以保障安全和及时进行应对措施。 ### 回答3: net_dvr_get_realtime_thermometry 是一种网络硬盘录像机(NVR)的函数,它用于实时获取热成像测温数据。 在现代社会中,热成像测温成为了一种重要的非接触式测温方法。而 NVR 是用于视频监控系统的设备,它可以录制和存储监控摄像头拍摄的视频。为了更好地响应日益严峻的公共卫生挑战,一些 NVR 生产商将热成像测温技术与 NVR 结合起来,提供可视化的热成像测温功能。 net_dvr_get_realtime_thermometry 函数,作为其中的一部分,允许用户从 NVR 中获取实时的热成像测温数据。通过这个函数,用户可以实时监测监控区域的温度变化,并在温度异常时采取相应的措施。这对于提前识别热源或异常温度的区域非常重要,如发现火灾风险或患者体温异常等情况。 这个函数的具体使用方法可能因不同的 NVR 品牌和型号而有所不同。一般来说,使用者需要提供相应的参数和调用接口,以获取需要的热成像测温数据。获取到的数据可以用于进一步的分析、处理和决策制定。 综上所述,net_dvr_get_realtime_thermometry 是一种用于实时获取热成像测温数据的函数,它使得 NVR 在视频监控的基础上,能够提供更多有关温度变化和异常的信息。这为各种领域的安防和公共卫生应用带来了更强大的功能和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值