小编Drj*_*Drj的帖子

使用boto和pandas从aws s3读取csv文件

我已经阅读了这里这里的答案,这些都没有用.

我试图csvS3桶中读取一个对象,并已能够使用以下代码成功读取数据.

srcFileName="gossips.csv"
def on_session_started():
  print("Starting new session.")
  conn = S3Connection()
  my_bucket = conn.get_bucket("randomdatagossip", validate=False)
  print("Bucket Identified")
  print(my_bucket)
  key = Key(my_bucket,srcFileName)
  key.open()
  print(key.read())
  conn.close()

on_session_started()
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用pandas作为数据框读取同一个对象,我会收到错误.最常见的是S3ResponseError: 403 Forbidden

def on_session_started2():
  print("Starting Second new session.")
  conn = S3Connection()
  my_bucket = conn.get_bucket("randomdatagossip", validate=False)
  #     url = "https://s3.amazonaws.com/randomdatagossip/gossips.csv"
  #     urllib2.urlopen(url)

  for line in smart_open.smart_open('s3://my_bucket/gossips.csv'):
     print line
  #     data = pd.read_csv(url)
  #     print(data)

on_session_started2()
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我在python 2.7上,不能使用Python 3.

python amazon-s3 boto python-2.7 pandas

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

amazon-s3 ×1

boto ×1

pandas ×1

python ×1

python-2.7 ×1