小编Err*_*rse的帖子

Python argparse 可能为空字符串值

我想使用 argparse 在我的主函数中传递一些值。在调用 python 文件时,我总是希望包含参数的标志,同时包含或排除其字符串参数。这是因为如果可能的话,调用 python 文件的一些外部代码会变得简单得多。

通过调用 parser.add_argument 添加参数时,我尝试将默认值default=None设置为并将其设置为default=''。看来我自己无法完成这项工作..

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--projects_to_build', default='')
    args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

此调用工作正常:

py .\python_file.py -p proj_1,proj_2,proj_3
Run Code Online (Sandbox Code Playgroud)

此调用不会:

py .\python_file.py -p

python_file.py: error: argument -p/--projects_to_build: expected one argument
Run Code Online (Sandbox Code Playgroud)

argparse python-3.x

10
推荐指数
1
解决办法
4928
查看次数

为什么我的属性不存在的条件表达式在 dynamodb 中失败

我的 DynamoDB 表的主键为id. 查询记录时将使用相同的 id。

现在我想插入一条带有id和作为属性的记录,当且仅当表中不存在和originalURL时,我想插入此记录。idoriginalURL

更新:-根据文档ConditionExpression: "attribute_not_exists(id) AND attribute_not_exists(originalURL)",仅在主键上下文中有效(您可以执行条件放置操作(如果指定主键不存在,则添加一个新项目),所以是否存在?没有什么区别。所以我需要一个两个条件都有效的解决方案,或者originalURL也充当关键attribute_not_exists(originalURL)

router.post('/', async function (req, res, next) {

  urlId = await nanoid(8);


  //const hashids = new Hashids('this is my salt')
  //urlId=hashids.encode(1)
  console.log('jatin', urlId);
  // urlId=uuidv4();

  const { longURL } = req.body

  const params = {
    TableName: 'url',
    Item: {
      "id": urlId,
      "originalURL": longURL
    },
    UpdateExpression: "set originalURL = :y",
    ConditionExpression: "attribute_not_exists(id) AND attribute_not_exists(originalURL)"
  }
  dynamoDb.put(params, (error, …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js express amazon-dynamodb

9
推荐指数
1
解决办法
2万
查看次数

如何从 R 绘图图中获取坐标

我一直在努力像疯了一样要解决的显然是最基本的问题。想象一下,您有一个散点图,例如…… 10 个标记。我想这个图是在 Shiny 环境中使用 plotly 生成的。

使用event_data("plotly_click")代码可以轻松获得这些标记的坐标。

现在假设您不需要这些标记的坐标,而是通过鼠标点击生成的坐标,但恰好在不存在标记的地方(例如,因为您想在那里设置一个新标记,并且您想重新使用来自鼠标点击的信息)。

我无法使用onclick(),或其他方式获得这种行为。

任何的想法 ?

r shiny plotly shinyjs

6
推荐指数
1
解决办法
1591
查看次数

size_t和内存分配

有这样一种类型std::size_t.它可以用于描述对象的大小,因为它可以保证能够表达任何对象的最大大小(因此在这里写).但是,这是什么意思?我们实际上没有内存中的对象.那么这是否意味着这种类型可以存储一个整数,代表我们理论上可以使用的最大内存量?

如果我尝试写类似的东西

size_t maxSize = std::numeric_limits<std::size_t>::max();
new char[maxSize];
Run Code Online (Sandbox Code Playgroud)

我会得到一个错误,因为数组的总大小限制为0x7fffffff.为什么?而且,如果我传递一个等于的非常量表达式maxSize,std::bad_array_new_length将被抛出.如果我传递的表达式小于maxSize但仍然大于0x7fffffff,std::bad_alloc则会抛出.我想这std::bad_alloc是因为内存不足而引发的,不是因为大小大于0x7fffffff.为什么会这样?我想如果我们分配的内存大小大于0x7fffffff(这是在编译时传递给new []的const的最大值),抛出一个特殊异常是很自然的.为什么std::bad_array_new_length只有在我通过时才被抛出maxSize?这种情况特别吗?

顺便说一下,如果我将maxSize传递给vector的构造函数,如下所示:

vector<char> vec(maxSize);
Run Code Online (Sandbox Code Playgroud)

std::bad_alloc将被抛出,而不是std::bad_array_new_length.这是否意味着vector使用不同的分配器?

我正在尝试自己实现数组.使用unsigned int来存储大小,容量和索引是一种糟糕的方法.所以定义一些这样的别名是个好主意:

typedef std::size_t size_type;
Run Code Online (Sandbox Code Playgroud)

size_type而不是unsigned int

c++ memory-management c++11

6
推荐指数
1
解决办法
891
查看次数

memset()导致数据中止

在调用时,我的一些代码中出现了一些奇怪的,间歇性的数据中止(<5%的时间)memset().问题是,除非代码运行了几天,否则通常不会发生,因此很难在行为中捕获它.

我正在使用以下代码:

char *msg = (char*)malloc(sizeof(char)*2048);
char *temp = (char*)malloc(sizeof(char)*1024);
memset(msg, 0, 2048);
memset(temp, 0, 1024);
char *tempstr = (char*)malloc(sizeof(char)*128);

sprintf(temp, "%s %s/%s %s%s", EZMPPOST, EZMPTAG, EZMPVER, TYPETXT, EOL);
strcat(msg, temp);

//Add Data
memset(tempstr, '\0', 128);
wcstombs(tempstr, gdevID, wcslen(gdevID));
sprintf(temp, "%s: %s%s", "DeviceID", tempstr, EOL);
strcat(msg, temp);
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我并没有尝试使用尺寸大于最初分配的memset malloc()

有人看到这可能有什么问题吗?

c c++ memory windows-mobile

4
推荐指数
1
解决办法
4734
查看次数

通过 Python 节点将字典从 LabVIEW 传递到 Python 脚本

TLDR:我正在为 LabVIEW 使用的东西制作一个 python 包装器,我想将一个dict(甚至 kwargs)[即键/值对]传递给一个 python 脚本,这样我就可以有更多的动态函数参数。

LabVIEW 2018 实现了一个Python 节点,它允许 LabVIEW 通过调用、传递和获取返回的变量与 Python 脚本进行交互。

问题是它似乎没有对dict类型的本机支持:

Python 节点详细信息支持的数据类型

Python 节点支持大量数据类型。您可以使用此节点调用以下数据类型:

数字数组,包括多维数组字符串簇调用约定

该节点将整数和字符串转换为 Python 中的相应数据类型,将数组转换为列表,将簇转换为元组。

当然,python 是围绕字典构建的,但 LabVIEW 似乎不支持以任何方式传递字典对象。

有谁知道我可以将一组命名元素(或任何其他字典类型)作为dict对象传递给 python 脚本的方法吗?

python labview python-3.x

4
推荐指数
1
解决办法
1131
查看次数

在 Flask 上显示 Swagger UI,无需任何连接

有人知道我可以.yml在 Flask 上提供 swagger UI 文件而不创建或连接 API 的方法吗?我只是想在网站上显示 swagger 文件,以便人们可以看到如何使用 API,但我不想创建 API 或连接任何东西,因为 API 是私有的,所以无论如何都不能调用它。

该API来自AWS API Gateway,所以我无法将任何东西与fla​​sk连接起来。

我研究了connexion,但我需要连接我的 API 方法才能使用它,但这是行不通的。

我可以使用 openapi 编辑器将 api 规范转换为 html,然后提供 html,但我想尝试使用 swagger ui 提供的漂亮布局。

python flask python-3.x swagger-ui aws-api-gateway

2
推荐指数
1
解决办法
2678
查看次数

Visual Studio 远程调试器无法启动

我最近在我的笔记本电脑上安装了 Visual Studio 2017(运行 Windows 10)。我有一个使用 OpenCV 和 Eigen 库的 C++ 项目,它似乎可以正确编译,但是当我尝试运行本地 Windows 调试器时,我收到一条错误消息:

Visual Studio 远程调试器 (MSVSMON.EXE) 无法启动。如果此问题仍然存在,请通过控制面板中的“添加或删除程序”修复您的 Visual Studio 安装

我运行了它建议的修复工具,但没有运气。我还在网上查找了一个解决方案,并发现了一个支持页面(链接)。我尝试按照支持页面上的建议关闭我的防病毒和防火墙,但这并没有消除错误消息。我的笔记本电脑是全新的,我刚刚安装了Visual Studio和Remote Debugger,所以我认为不会出现Remote Debugger的版本与Visual Studio的版本不匹配的情况。所有其他建议都适用于进行远程调试的人,但我正在进行本地调试。

任何有关解决此问题的帮助/建议将不胜感激。

visual-studio visual-studio-2017

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

创建在java中存储-6到38的赔率的数组

我正在学习Java,我在阵列章节中找到了一个我无法解决的练习.

演习说:

编写创建一个名为的数组的代码,odds并使用for循环将所有奇数在-6和38之间存储到其中.使数组的大小足够大以存储数字.

我能想出的唯一解决方案是:

import java.util.Arrays;

public class exerciseOddsArray {
    public static void main(String[]args){

        oddsArray();
    }
    public static void oddsArray(){
        int odds = 0;
        for (int i = -6; i <= 38; i++){
            if (i % 2 == 1){
                odds++;
            }
        }
        int[] numbers = new int[odds];
        for (int i = 0; i < numbers.length; i ++){
                for (int j = -6; j <= 38; j++){
                    if(j % 2 == 1){
                        numbers[i] = j;
                    }
            } …
Run Code Online (Sandbox Code Playgroud)

java

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

从文件到字典对象无循环

我想读取一个文本文件,然后将内容转换为字典。文件内容如下:

a=15
b=22
c=31
d=42
Run Code Online (Sandbox Code Playgroud)

有没有任何一种python方法可以做到两行一条,而无需使用任何循环?请帮忙。

我尝试了以下方法:

x=open("file.txt").read()
z=dict(x.replace('\n',','))
Run Code Online (Sandbox Code Playgroud)

但这给我一个错误。

预期结果:

{'a': 15, 'b': 22, 'c': 31, 'd': 42}
Run Code Online (Sandbox Code Playgroud)

python

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

使用全局变量或几个参数?

是否最好使用全局变量,例如:

int bumNum;
int extraNum;
bool isIt;

void setup()
{
    std::cin >> bumNum;
    std::cin >> extraNum;
    isIt= false;
}

void anotherFunc()
{
    //do something with the global variables
}

int main()
{
    setup();
    anotherFunc();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或局部变量,例如:

void setup(int& bumNum, int& extraNum, bool& isIt)
{
    std::cin >> bumNum;
    std::cin >> extraNum;
    isIt= false;
}

void anotherFunc(int& bumNum, int& extraNum, bool& isIt)
{
    //do something with the global variables
}

int main()
{
    int bumNum;
    int extraNum;
    bool isIt;
    setup(bumNum, …
Run Code Online (Sandbox Code Playgroud)

c++

-4
推荐指数
1
解决办法
81
查看次数