gpt4 book ai didi

node.js - 如何使用 nodejs 将过滤后的数据从 dynamodb 导出到 csv?

转载 作者:行者123 更新时间:2023-12-05 03:58:16 24 4
gpt4 key购买 nike

我想将过滤后的数据从 dynamodb 导出到 csv。我有一个使用名称和 ID 过滤数据的功能..现在我需要将过滤后的数据导出到 excel..我该如何解决这个问题?我看过这个 npm dynamodb-csv .但这并没有解决我的问题..

最佳答案

我正在使用以下代码片段进行导出和导入:

const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient({ region: 'eu-central-1' });
const READ_FROM_TABLE = "example-table-prod"
const STORE_TO_TABLE = "example-table-dev"
const fs = require('fs');

async function loadAllResults() {
var results = []
var currentResults = await loadAdditionalResults()
results = results.concat(currentResults.Items)
while (currentResults.LastEvaluatedKey) {
currentResults = await loadAdditionalResults(currentResults.LastEvaluatedKey)
results = results.concat(currentResults.Items)
}
fs.writeFile("output.json", JSON.stringify(results, null, 2), () => {
console.log(results.length)
})
return results
}

async function loadAdditionalResults(start) {
console.log("Loading more results...")
var params = {
TableName: READ_FROM_TABLE,
}

if (start) {
params.ExclusiveStartKey = start
}

return new Promise((resolve, reject) => {
dynamoDb.scan(params, (error, result) => {
if (error) {
console.log(error);
reject(error)
} else if (result) {
resolve(result)
} else {
reject("Unknown error")
}
})
})
}

async function storeAllResults(results) {
var count = 0
for (result of results) {
await storeItem(result)
count++
console.log("Stored " + count + " / " + results.length)
}
}

async function storeItem(item) {
const params = {
TableName: STORE_TO_TABLE,
Item: item
};

return new Promise((resolve, reject) => {
dynamoDb.put(params, function (error, data) {
if (error) {
console.log(error);
reject({ error: 'Could not create item' });
}
resolve("Stored");
});
});
};

async function main() {
let results = await loadAllResults()
storeAllResults(results)
}


main()

请随意使用对您有用的任何片段。另请注意,您可以使用 https://www.npmjs.com/package/json2csv 将 json 转换为 csv

关于node.js - 如何使用 nodejs 将过滤后的数据从 dynamodb 导出到 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58113906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com