在用pymysql将dataframe数据逐行写入数据库时,报AttributeError: ‘numpy.int64’ object has no attribute 'translate’这个错误。
报错原因:将dataframe该行中是数值型数据的字段的类型打印出来,发现该字段是numpy.int64类型,但是在数据库中对应要写入的字段是int型的。
解决方法:在该行中numpy.int64类型的字段类型转为int型的。例如像下面这样,将line[“cluster_category_code”]转化为int型即可。
sql = "UPDATE cs_cluster_keywords_info SET after_filter_keywords = %s WHERE keyword_id = %s and cluster_category_code = %s"
print(type(line["cluster_category_code"]))
cursor.execute(sql, [line["after_filter_keywords"], keywordId,int(line["cluster_category_code"])])