python 正则匹配错误 ValueError

报错 ValueError: arrays must all be same length

小白学python,拿tap评论爬虫试水

就是找这个内容,count后面的数字“2”;

相关代码如下:

def get_comment_agree(bs):
    comment_footer = bs.select(".review-item-text .item-text-header") # 选择页面中评论模块的尾部
    pattern_agree = 'data-taptap-ajax-vote="count">(.*?)</span>'
    agree = re.findall(pattern_agree,str(comment_footer),re.S)
    return agree
agree_out = []
agree_tmp = get_comment_agree(star_bs)
agree_out.extend(agree_tmp)
result = {"comment": comment_out,
          "score": score_out,
          "comment_date": datetime_out,
          "agree": agree_out} 
resultpd = pd.DataFrame(result) 

就是最后一步pd.DataFrame的时候报错了

ValueError: arrays must all be same length

应该是查找定位agree有问题,前三个没问题的,但是哪里错了呢

上面有个代码复制错了,

comment_footer = bs.select(".review-item-text .item-text-footer") 

才对

result中的key-value;每个value的长度必须要一致。

报错的原因是里面有1个或多个value的长度不一致

我大概定位到是 agree 相关的value有问题,因为去掉这个就没报错;

用 pd.DataFrame.from_dict  也可以解决这个key-value的报错,但是行列就互换了,然后输出来的agree值是有问题的

但是我看不出来前面正则查找agree的时候问题出现在哪