嗨,我正在使用boto3从s3中提取数据。
result = s3.list_objects_v2(
Bucket = bucket,
Prefix ='1/abc/2/cde',
)
我正在尝试在“前缀”之后列出所有文件夹名称
我收到以下错误
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 648, in _make_api_call
operation_model, request_dict, request_context)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 667, in _make_request
return self._endpoint.make_request(operation_model, request_dict)
File "/usr/local/lib/python3.7/site-packages/botocore/endpoint.py", line 102, in make_request
return self._send_request(request_dict, operation_model)
File "/usr/local/lib/python3.7/site-packages/botocore/endpoint.py", line 135, in _send_request
request, operation_model, context)
File "/usr/local/lib/python3.7/site-packages/botocore/endpoint.py", line 167, in _get_response
request, operation_model)
File "/usr/local/lib/python3.7/site-packages/botocore/endpoint.py", line 218, in _do_get_response
response_dict, operation_model.output_shape)
File "/usr/local/lib/python3.7/site-packages/botocore/parsers.py", line 242, in parse
parsed = self._do_parse(response, shape)
File "/usr/local/lib/python3.7/site-packages/botocore/parsers.py", line 775, in _do_parse
self._parse_payload(response, shape, member_shapes, final_parsed)
File "/usr/local/lib/python3.7/site-packages/botocore/parsers.py", line 811, in _parse_payload
original_parsed = self._initial_body_parse(response['body'])
File "/usr/local/lib/python3.7/site-packages/botocore/parsers.py", line 897, in _initial_body_parse
return self._parse_xml_string_to_dom(xml_string)
File "/usr/local/lib/python3.7/site-packages/botocore/parsers.py", line 437, in _parse_xml_string_to_dom
"invalid XML received:\n%s" % (e, xml_string))
botocore.parsers.ResponseParserError: Unable to parse response (not well-formed (invalid token): line 1, column 0), invalid XML received:
b'{"bucket":"bucket","maxKeys":100,"versions":false,"prefix":"1\\/abc\\/2\\/cde","truncated":false,"results":[{"size":492574,"etag":"\\"BS6196892E3E0762DB660D395019F9E3\\"","lastModified":15634564256981,"version":"t4950050-afcf-11e9-bc48-e41d2d615800","key":"1\\/abc\\/2\\/cde\\/folder1\\/folder2\\/file.csv"}]}'
这是因为它无法解析“ etag”吗?请帮助!
谢谢
来自[list_objects][1]
,
EncodingType(字符串)-请求Amazon S3对响应中的对象键进行编码,并指定要使用的编码方法。对象键可以包含任何Unicode字符;但是,XML 1.0解析器无法解析某些字符,例如具有ASCII值从0到10的字符。对于XML 1.0不支持的字符,您可以添加此参数以请求Amazon S3对响应中的键进行编码。
在您的情况下,您的前缀包含ASCII value from 0 to 10
。