我在 S3 存储桶中有一个 lambda 读取 csv。 api 网关调用 lambda。 csv中的数据是这样的:
Ticker Exchange Date Open High Low Close Volume
6A BATS 12/2/2021 0.9 0.95 0.83 0.95 1200
6B BATS 12/3/2021 1 1.3 0.9 1.2 1500
6C BATS 12/4/2021 1.2 1.3 1.1 1.1 1300
这是我的代码:
import json
import awswrangler as wr
BUCKET_NAME = 'olaptrader-products'
DIRECTORY_PATH = '1'
FULL_PATH = f"s3://{BUCKET_NAME}/{DIRECTORY_PATH}"
def lambda_handler(event, context):
raw_df = wr.s3.read_csv(path=FULL_PATH, path_suffix=['.csv'], use_threads=True)
df = raw_df.to_json(orient="records")
parsed = json.loads(df)
return {
"statusCode": 200,
'body': json.dumps(parsed)
}
我的输出是这样的:
[{"Ticker": "6A", "Exchange": "BATS", "Date": "12/2/2021", "Open": 0.9, "High": 0.95, "Low": 0.83, "Close": 0.95, "Volume": 1200}, {"Ticker": "6B", "Exchange": "BATS", "Date": "12/3/2021", "Open": 1.0, "High": 1.3, "Low": 0.9, "Close": 1.2, "Volume": 1500}, {"Ticker": "6C", "Exchange": "BATS", "Date": "12/4/2021", "Open": 1.2, "High": 1.3, "Low": 1.1, "Close": 1.1, "Volume": 1300}]
我如何摆脱那些多余的空间?我在 df.to_json 中尝试过“skipinitialspace”,但这显然不适用于 json,仅适用于 csv 等,它没有用。 我不想去掉所有空格,因为在某些情况下,我的公司名称中有一个空格,我想保留它。只需要摆脱这些领先的空间。 谢谢