Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana Step Functions mem-parsing file CSV masukan
Mengelola status dan mengubah data
Pelajari tentang Melewati data antar status dengan variabel dan Mengubah data dengan JSONata.
Step Functions mem-parsing file teks yang dibatasi berdasarkan aturan berikut:
-
Pembatas yang memisahkan bidang ditentukan oleh in.
CSVDelimiterReaderConfig Delimiter default ke.COMMA -
Baris baru adalah pembatas yang memisahkan catatan.
-
Bidang diperlakukan sebagai string. Untuk konversi tipe data, gunakan fungsi
States.StringToJsonintrinsik di. ItemSelector (Peta) -
Tanda kutip ganda (” “) tidak diperlukan untuk melampirkan string. Namun, string yang diapit oleh tanda kutip ganda dapat berisi koma dan baris baru tanpa bertindak sebagai pembatas rekaman.
-
Anda dapat mempertahankan tanda kutip ganda dengan mengulanginya.
-
Backslashes (\) adalah cara lain untuk melarikan diri dari karakter khusus. Garis miring terbalik hanya berfungsi dengan garis miring terbalik lainnya, tanda kutip ganda, dan pemisah bidang yang dikonfigurasi seperti koma atau pipa. Garis miring terbalik yang diikuti oleh karakter lain dihapus secara diam-diam.
-
Anda dapat mempertahankan garis miring terbalik dengan mengulanginya. Misalnya:
path,size C:\\Program Files\\MyApp.exe,6534512 -
Garis miring terbalik yang lolos dari tanda kutip ganda (
\"), hanya berfungsi jika disertakan dalam pasangan, jadi kami sarankan untuk menghindari tanda kutip ganda dengan mengulanginya:."" -
Jika jumlah bidang dalam satu baris kurang dari jumlah bidang di header, Step Functions menyediakan string kosong untuk nilai yang hilang.
-
Jika jumlah bidang dalam satu baris lebih dari jumlah bidang di header, Step Functions melewatkan bidang tambahan.
Contoh penguraian file CSV masukan
Katakanlah Anda telah menyediakan file CSV bernama yang berisi satu baris sebagai input. Kemudian, Anda telah menyimpan file ini di bucket Amazon S3 yang diberi nama. myCSVInput.csv File CSV adalah sebagai berikut.amzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"Mesin status berikut membaca file CSV ini dan digunakan ItemSelector (Peta) untuk mengonversi tipe data dari beberapa bidang.
{ "StartAt": "Map", "States": { "Map": { "Type": "Map", "ItemProcessor": { "ProcessorConfig": { "Mode": "DISTRIBUTED", "ExecutionType": "STANDARD" }, "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "End": true } } }, "End": true, "Label": "Map", "MaxConcurrency": 1000, "ItemReader": { "Resource": "arn:aws:states:::s3:getObject", "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [ "MyLetters", "MyNumbers", "MyString", "MyObject", "MyArray" ] }, "Parameters": { "Bucket": "amzn-s3-demo-bucket", "Key": "myCSVInput.csv" } }, "ItemSelector": { "MyLetters.$": "$$.Map.Item.Value.MyLetters", "MyNumbers.$": "States.StringToJson($$.Map.Item.Value.MyNumbers)", "MyString.$": "$$.Map.Item.Value.MyString", "MyObject.$": "States.StringToJson($$.Map.Item.Value.MyObject)", "MyArray.$": "States.StringToJson($$.Map.Item.Value.MyArray)" } } } }
Ketika Anda menjalankan mesin status ini, menghasilkan output berikut.
[
{
"MyNumbers": 123,
"MyObject": {
"MyKey": "MyValue"
},
"MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
"MyLetters": "abc",
"MyArray": [
1,
2,
3
]
}
]