我的字符串中嵌入了字节字符串-Python

我的字符串中嵌入了字节字符串-Python,python,string,amazon-s3,utf-8,byte,Python,String,Amazon S3,Utf 8,Byte,当前正在从s3读取数据并保存在数据帧中 问题图像: S3对象是以字节的形式读入的,但是它似乎在我的字符串中,字节字符串也在那里。 无法使用-example_string.decode()对字符串进行解码 另一个问题是试图在文本中找到表情符号。这些文件保存为UTF-8,由于要保存为字符串中的字节字符串,因此会添加额外的\etc 我只希望字符串没有额外的字节字符串或任何组合。 任何帮助都将不胜感激 bucket_iter = iter(bucket) while (True) :

当前正在从s3读取数据并保存在数据帧中

问题图像:

S3对象是以字节的形式读入的,但是它似乎在我的字符串中,字节字符串也在那里。 无法使用-example_string.decode()对字符串进行解码

另一个问题是试图在文本中找到表情符号。这些文件保存为UTF-8,由于要保存为字符串中的字节字符串,因此会添加额外的\etc

我只希望字符串没有额外的字节字符串或任何组合。 任何帮助都将不胜感激

    bucket_iter = iter(bucket)
    while (True) : 
      next_val = next(bucket_iter)
      current_file = (next_val.get()['Body'].read())).decode('utf-8') 
      split_file = current_file.split(']')
      for tweet in split_file:
        a = tweet.split(',')
        if (len(a) == 10):
          a[0] = a[0][2:12]
          new_row = {'date':a[0], 'tweet':a[1], 'user':a[2], 'cashtags':a[3],'number_cashtags':a[4],'Hashtags':a[5],'number_hashtags':a[6],'quoted_tweet':a[7],'urs_present':a[8],'spam':a[9]}
          df = df.append(new_row, ignore_index=True)
s3bucket中的行示例

["2021-01-06 13:41:48", "Q1 2021 Earnings Estimate for The Walt Disney Company $DIS Issued By Truist Securiti https://t co/l5VSCCCgDF #stocks", "b'AmericanBanking'", "$DIS", "1", "#stocks'", "1", "False", "1", "0"]

即使这是一个字符串,它也会在字符串之前保留“b”,即使该项是一个字符串。只需编写一小段代码,只保留引号中的内容

def bytes_to_string(b):
  return str(b)[2:-1]

编辑:从技术上讲,您可以使用正则表达式来执行此操作,但这是一种可读性更高的方法(而且更短)

即使这是一个字符串,它也会将“b”保留在字符串之前,即使该项是一个字符串。只需编写一小段代码,只保留引号中的内容

def bytes_to_string(b):
  return str(b)[2:-1]

编辑:从技术上讲,您可以使用正则表达式来执行此操作,但这是一种可读性更高的方法(而且更短)

是的,这解决了第一个问题,请考虑emoj问题,我将使用字符串替换\\for\以获得正确的字节(UTF-8)表示并创建emoj及其含义的字典,或者转换为unicode并使用python emoj库。。听起来合理?是的,听起来不错。我不知道有一个表情库,但是假设你使用我给你的函数把它转换成正确的字符串,你就可以在字符串中循环找到表情,把那些不是表情的连接成一个空字符串。是的,这解决了第一个问题,考虑一下emoj问题,我会用string replace\\for\这样我就有了正确的字节(UTF-8)表示法,或者创建emoj及其含义的字典,或者转换为unicode并使用python emoj库。。听起来合理?是的,听起来不错。我不知道有一个表情库,但是假设你使用我给你的函数把它转换成正确的字符串,你就可以在字符串中循环找到表情,把那些不是表情的连接成一个空字符串。