AWS Export File Conversion: DynamoDB, CloudTrail & S3 Inventory
Learn how DynamoDB JSON, Textract JSON, CloudTrail, S3 Inventory, CloudWatch Logs, and Transcribe exports differ before converting them to CSV, Excel, JSONL, or subtitles.
The same .json extension can hide very different structures
AWS exports carry service-specific meaning. DynamoDB uses typed AttributeValue wrappers such as S, N, and M. Textract returns Blocks linked by IDs. CloudTrail wraps audit events in Records. A generic JSON-to-CSV converter cannot always produce the table you expect.
Identify the source service first, then choose a converter that understands its structure. Filewisp separates six AWS formats and offers the output that fits each workflow: CSV, Excel, JSONL, SRT, VTT, or plain text.
Unmarshall DynamoDB JSON before flattening it
DynamoDB S3 exports use JSON Lines, with each Item containing types such as S, N, BOOL, SS, M, and L. Simply decompressing .json.gz leaves those wrappers in every cell. Unmarshall AttributeValue first, then flatten nested maps into columns.
Keep N values as strings when precision matters because IDs and large integers may exceed JavaScript's safe integer range. For incremental exports, preserve Keys, NewImage, and OldImage separately so before-and-after values remain comparable.
Rebuild Textract tables through Relationships
A Textract TABLE does not directly contain its cell text. Relationships point to CELL blocks, and those cells point to WORD or SELECTION_ELEMENT blocks. Following those IDs with RowIndex and ColumnIndex reconstructs a spreadsheet grid.
Put each table on a separate Excel sheet, KEY_VALUE_SET pairs on a Forms sheet, and LINE blocks on a Text Lines sheet. Structural conversion does not correct OCR mistakes, so compare low-confidence text with the source document.
Do not treat CloudTrail and CloudWatch Logs as the same thing
CloudTrail records who called which AWS API. Trail objects delivered to S3 contain gzip-compressed Records arrays. Combining files into CSV makes it easier to filter eventSource, eventName, userIdentity, and errorCode across an investigation window.
CloudWatch Logs contain application and service messages. S3 exports may be split across multiple .gz objects and order is not guaranteed, so parsed timestamps should be sorted. JSON messages can also expose fields such as level and requestId as columns.
Read an S3 Inventory manifest with its data files
S3 Inventory manifest.json lists data objects and fileSchema. Actual Bucket, Key, Size, StorageClass, and optional fields live in CSV.GZ, ORC, or Parquet files, so the manifest alone cannot display inventory rows.
CSV.GZ data has no header row. Apply columns in fileSchema order and merge split objects with a sourceFile column. That source reference helps when checking missing or duplicate rows.
Create SRT or VTT from Transcribe JSON
Amazon Transcribe can now create SRT or VTT when subtitles are requested with the job. For existing JSON or jobs created without subtitles, results.items still provides start_time and end_time values that can rebuild cues.
Group words by punctuation, length, duration, and speaker changes. Choose SRT for common video editing workflows, VTT for web players, or TXT when you only need transcript text.
Validate with a small sample before a large export
Audit logs, OCR documents, and customer data may contain sensitive information. Browser-side conversion avoids uploading files to another server, but it still uses device memory, so process very large exports in smaller batches.
Before converting production data in bulk, verify columns, numeric precision, encoding, timestamps, and counts with a small file. Compare output row counts with the source before sharing the result.