小编Wor*_*ddy的帖子

基于 Python 和 Click 的 CLI 应用程序如何需要选项

我正在使用 Python 和 Click 库构建 CLI 应用程序。

我如何实现以下用例:

首先,我只希望子命令后跟一个参数,不需要任何选项:

$ myapp subcommand argument
Run Code Online (Sandbox Code Playgroud)

这是直截了当的。

但是我如何编写代码,如果设置了参数2,还需要一些选项?

$ myapp subcommand argument2 -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)

例如:

不需要任何选项:

$ ./myapp.py install basic
Run Code Online (Sandbox Code Playgroud)

需要以下选项:

$ ./myapp.py install custom -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)

此外,我不知道如何选择参数,这意味着用户必须在“基本”或“自定义”之间进行选择。如果他选择“自定义”,他需要添加一些选项。

python command-line-interface python-click

5
推荐指数
1
解决办法
85
查看次数

AWS @aws-sdk/lib-dynamodb '无法读取未定义的属性'0''

我尝试利用 @aws-sdk/lib-dynamodb 来简化从 AWS DynamoDB 的数据检索。

# aws.js
const {DynamoDBClient,ScanCommand} = require('@aws-sdk/client-dynamodb');
const { DynamoDBDocumentClient } = require('@aws-sdk/lib-dynamodb');
const { fromIni } = require('@aws-sdk/credential-provider-ini');
const client = new DynamoDBClient({
    credentials: fromIni({ profile: process.env.AWS_PROFILE }),
    region: process.env.AWS_DEFAULT_REGION,
});

const ddb_client = DynamoDBDocumentClient.from(client);

const listItemsDDB = async (params) => {
    try {
        const command = new ScanCommand(params);
        const data = await ddb_client.send(command);
        return data;
    } catch (err) {
        throw Error(err);
    }
};
module.exports = {listItemsDDB };
Run Code Online (Sandbox Code Playgroud)

我将函数导入到我的rest_api.js. 一切都基于 Express js …

amazon-web-services node.js amazon-dynamodb

5
推荐指数
1
解决办法
5657
查看次数