AttributeError:'bool'对象没有属性'encode',使用Apache Cassandra和Python

2024-09-28 23:40:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python在apache cassandra中插入一个数据帧,但AttributeError返回错误:“bool”对象没有属性“encode”

cluster = Cluster(['127.0.0.1'])
session = cluster.connect()

def acessa_banco(palavra):
       session.execute("""CREATE KEYSPACE IF NOT EXISTS %s WITH replication = {'class': 'SimpleStrategy', 'replication_factor' :'1' }""" % palavra)
       session.set_keyspace(palavra)
       session.execute("""
              create table if not exists stg_pesquisa_twitter(
                      usuario           text
                     ,localizacao       text
                     ,total_amigos      int 
                     ,total_seguidores  int 
                     ,total_listas      int         
                     ,total_likes       int          
                     ,status_verificado textfi‹
                     ,total_status      int  
                     ,total_retweet     int  
                     ,tweet             text
                     ,PRIMARY KEY(usuario)       
              ) WITH comment='Informacao dos twitter mais pesquisados';
       """
       )

       # insert da tabela 
       query = "insert into stg_pesquisa_twitter (usuario, localizacao, total_amigos, total_seguidores, total_listas, total_likes, status_verificado, total_status, total_retweet, tweet) \
                values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"

   prepared = session.prepare(query)
   for index, row in txt.iterrows():
          session.execute(prepared
                         ,(row['usuario']
                         , row['localizacao']
                         , row['total_amigos']
                         , row['total_seguidores']
                         , row['total_listas']
                         , row['total_likes']
                         , row['status_verificado']
                         , row['total_status']
                         , row['total_retweet']
                         , row['tweet'])
                         ) 

enter image description here


Tags: textexecutesessionstatustwitterintrowtotal
1条回答
网友
1楼 · 发布于 2024-09-28 23:40:04

这个问题很老,但仍然没有答案,我今天遇到了类似的错误,所以:

根据表定义,字段可以是“text”或“int”

您正在准备查询,因此Cassandra驱动程序将尝试正确转换您提供的值,以将它们插入查询中

此错误表示驱动程序试图将布尔值编码为字符串:

False.encode() # this would not work in Python
"false".encode() # this works

因此,对于至少一个定义为“text”的列,您提供了一个布尔值。要解决此问题,请找到哪些值是布尔值并将其转换为字符串

相关问题 更多 >