Мне нужно, чтобы строка была помещена в переменную, чтобы она выглядела точно следующим образом:
'{"S3Object":{"Bucket":"<bucketname>","Name":"<docname>","Version":"<version>"}}'
'
s должны быть точно там, гдеони используются, когда строка используется позже.
, поэтому я определяю ее следующим образом:
aws_object = """'{"S3Object":{"Bucket":"%s","Name":"%s","Version":"1"}}'""" % (AWS_BUCKET, AWS_DOCUMENT_NAME)
это единственный метод, который я обнаружил, который позволитпеременные, которые должны быть помещены в строку при возможности использования '
и "
по мере необходимости.печать переменной в консоль приводит к тому, что строка выглядит идеально.
однако, если использовать aws_object
, то в результате строка будет выглядеть как
\'{"S3Object":{"Bucket":"testing-bucket","Name":"contract.pdf","Version":"1"}}\'']'
вконсоль, при использовании в subprocess.check_output
, например, так:
job_id = subprocess.check_output(["aws textract start-document-text-detection --document '{}'".format(aws_object)], shell=True)
, поэтому там есть некоторые дополнительные символы, возможно, от использования """
в aws_object
или что-то в этом роде.
возвращаемая ошибка говорит Unable to get object metadata from S3.
, потому что объект, переданный в start-document-text-detection
, неправильно отформатирован.
как мне добиться желаемого форматирования строки, чтобы сделать AWS CLI счастливым?