我正在尝试通过API传递一个csv,如下所示:
csv如下所示:
field_1, field_2, field_3
1, 3, 7
推送代码是:
with open("sample_csv.csv") as f:
data = {"file": f}
print(data)
headers = {
"Content-Type": "text/csv",
"File-Type": "POS",
"File-Key": "somekey",
}
r = requests.post(endpoint, data=data, headers=headers)
然而,当我从另一端的Lambda读到它时,我得到了这个:
b'file=field_1%2C+field_2%2C+field_3%0A&file=1%2C+3%2C+7'
当我通过chardet运行上面的字符串时,它告诉我它是ascii,但我不知道如何转换它
编辑:lambda函数代码:
def main(event: dict, context) -> dict:
body = base64.b64decode(event["body"])
print(body)
2条答案
按热度按时间8xiog9wr1#
这个问题更像是字符串编码问题。
数据似乎是以url编码格式编码的。您可以使用
urllib.parse
库分析字符串并提取数据。试试这个:
jk9hmnmh2#
想明白了,在这里给后人加上答案
之后
parsed_event
是一个列表,每个元素是csv的一行,您可以根据需要对其进行操作。