Использование AWS textractor приводит к выводу в файл csv с несовместимой длиной строк.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование AWS textractor приводит к выводу в файл csv с несовместимой длиной строк.

Сообщение Anonymous »

// Функция используется для получения строк в карте столбцов. Пример синхронного анализа документа собирает информацию о таблице из вызова AnalyDocument. В примере асинхронного анализа документа выполняется вызов StartDocumentAnasis, а затем извлекаются результаты из GetDocumentAnasis в виде объектов Block.Табличная информация возвращается в виде объектов Block из вызова AnalyseDocument. Для получения дополнительной информации см. Таблицы. Объекты Block хранятся в структуре карты, которая используется для экспорта данных таблицы в файл CSV.
def get_rows_columns_map(table_result, blocks_map):
rows = {}
scores = []
for relationship in table_result['Relationships']:
if relationship['Type'] == 'CHILD':
for child_id in relationship['Ids']:
cell = blocks_map[child_id]
if cell['BlockType'] == 'CELL':
row_index = cell['RowIndex']
col_index = cell['ColumnIndex']
if row_index not in rows:
# create new row
rows[row_index] = {}

# get confidence score
scores.append(str(cell['Confidence']))

# get the text value
rows[row_index][col_index] = get_text(cell, blocks_map)
return rows, scores

// Функция используется для получения текста
def get_text(result, blocks_map):
text = ''
if 'Relationships' in result:
for relationship in result['Relationships']:
if relationship['Type'] == 'CHILD':
for child_id in relationship['Ids']:
word = blocks_map[child_id]
if word['BlockType'] == 'WORD':
if "," in word['Text'] and word['Text'].replace(",", "").isnumeric():
text += '"' + word['Text'] + '"' + ' '
else:
text += word['Text'] + ' '
if word['BlockType'] == 'SELECTION_ELEMENT':
if word['SelectionStatus'] =='SELECTED':
text += 'X '
return text

// Функция используется для получения результатов таблицы csv
def get_table_csv_results(file_name):

with open(file_name, 'rb') as file:
img_test = file.read()
bytes_test = bytearray(img_test)
print('Image loaded', file_name)

# process using image bytes
# get the results
session = boto3.Session(profile_name='default')
client = session.client('textract', region_name='placeholder',
aws_secret_access_key='placeholder',
aws_access_key_id='placeholder')
response = client.analyze_document(Document={'Bytes': bytes_test}, FeatureTypes=['TABLES'])

# Get the text blocks
blocks=response['Blocks']
pprint(blocks)

blocks_map = {}
table_blocks = []
for block in blocks:
blocks_map[block['Id']] = block
if block['BlockType'] == "TABLE":
table_blocks.append(block)

if len(table_blocks)

Подробнее здесь: https://stackoverflow.com/questions/793 ... inconsiste
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»