小编Che*_*tan的帖子

如何使用python更新yaml文件

我有一个some.yaml包含以下内容的文件.

    init_config: {}
    instances:
        - host: <IP>
          username: <username>
          password: <password>
Run Code Online (Sandbox Code Playgroud)

应该如下解析和更新yaml文件.

    init_config: {}
    instances:
        - host: 1.2.3.4
          username: Username
          password: Password
Run Code Online (Sandbox Code Playgroud)

如何解析值并适当更新它们?

python pyyaml

17
推荐指数
3
解决办法
3万
查看次数

Perl尝试捕获用户定义的异常

我想知道perl是否有一些类似于python的try catch机制,我可以提高用户定义的异常并相应地处理.

Python代码:

   try:
       number = 6
       i_num = 3
       if i_num < number:
           raise ValueTooSmallError
       elif i_num > number:
           raise ValueTooLargeError
       break
   except ValueTooSmallError:
       print("This value is too small, try again!")
       print()
   except ValueTooLargeError:
       print("This value is too large, try again!")
       print()
Run Code Online (Sandbox Code Playgroud)

我知道perl尝试抓住机制,如下所示:

sub method_one {
    try {
        if ("number" eq "one") {
            die("one");
        } else {
            die("two");
        }
    } catch {
        if ($@ eq "one") {
            print "Failed at one";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

eval {
    open(FILE, $file) …
Run Code Online (Sandbox Code Playgroud)

perl

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

如何为带有动态变量的 where 子句编写 gorm 函数

我需要创建一个 sql 查询:

SELECT * FROM users WHERE id = 10 AND name = "Chetan"
Run Code Online (Sandbox Code Playgroud)

现在,gorm 的 where 函数如下所示,

// Where return a new relation, filter records with given conditions, accepts `map`, `struct` or `string` as conditions, refer http://jinzhu.github.io/gorm/crud.html#query
func (s *DB) Where(query interface{}, args ...interface{}) *DB {
    return s.clone().search.Where(query, args...).db
}
Run Code Online (Sandbox Code Playgroud)

这意味着它接受查询和参数。例子 :

dbDriver.Where("id = ?", id).First(t)
Run Code Online (Sandbox Code Playgroud)

我如何动态传递多个变量。例子:

SELECT * FROM users WHERE id = 10 AND name = "Chetan"
SELECT * FROM users WHERE id = 10
SELECT …
Run Code Online (Sandbox Code Playgroud)

go go-gorm

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

在python中用不同的值模拟一个方法两次

我必须模拟如下所示的方法:

实际的python方法

import json
def some_method(self):
    output_one = json.loads(varone)
    output_two = json.loads(vartwo)
Run Code Online (Sandbox Code Playgroud)

测试方法

import json
self.stubs = stubout.StubOutForTesting()
self.stubs.Set(json, "loads", lambda *a: output_one)
self.stubs.Set(json, "loads", lambda *a: output_two)
Run Code Online (Sandbox Code Playgroud)

结果是看到只有output_two因为output_one被覆盖了。我应该如何模拟一个方法两次并期望每次都有不同的输出。

python python-unittest

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

如何在不使用正则表达式或拆分的情况下将字符串转换为perl中的哈希值

我有一个我无法控制的函数,它返回一个实际上是哈希的字符串.它看起来像下面这样:

{"offset":0,"limit":500,"count":0,"virtual_machines":[]}
Run Code Online (Sandbox Code Playgroud)

我需要检查计数是否大于0.因为输出是一个字符串而不是哈希,我试图拆分字符串并从中获取输出.

相同的片段如下:

my $output = '{"offset":0,"limit":500,"count":0,"virtual_machines":[]}';
$output =~ s/ +/ /g;
my @words = split /[:,"\s\/]+/, $output;
print Dumper(@words);
Run Code Online (Sandbox Code Playgroud)

这个输出是:

$VAR1 = '{';
$VAR2 = 'offset';
$VAR3 = '0';
$VAR4 = 'limit';
$VAR5 = '500';
$VAR6 = 'count';
$VAR7 = '0';
$VAR8 = 'virtual_machines';
$VAR9 = '[]}';
Run Code Online (Sandbox Code Playgroud)

现在,我可以获得价值$ VAR7并获得计数.

有没有办法将字符串转换为哈希值,然后使用键来获取值而不是使用正则表达式和拆分.有人可以帮帮我吗!

regex perl json

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

比较版本而不使用版本CPAN模块

假设我有2个版本变量:

$one = "1.2.3"
$two = "1.2.4"
Run Code Online (Sandbox Code Playgroud)

如何比较这两个版本变量的版本是否匹配,或者一>两个或一<两个​​?

请注意,我有一个只读系统,无法添加任何Perl模块。因此,我无法添加versionPerl模块。

perl

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

标签 统计

perl ×3

python ×2

go ×1

go-gorm ×1

json ×1

python-unittest ×1

pyyaml ×1

regex ×1