小编Jer*_*obs的帖子

pyyaml并仅使用字符串引号

我有以下YAML文件:

---
my_vars:
  my_env: "dev"
  my_count: 3
Run Code Online (Sandbox Code Playgroud)

当我用PyYAML读取它并再次转储它时,我得到以下输出:

---
my_vars:
  my_env: dev
  my_count: 3
Run Code Online (Sandbox Code Playgroud)

有问题的代码:

with open(env_file) as f:
    env_dict = yaml.load(f)
    print(yaml.dump(env_dict, indent=4, default_flow_style=False, explicit_start=True))
Run Code Online (Sandbox Code Playgroud)

我尝试使用default_style参数:

with open(env_file) as f:
    env_dict = yaml.load(f)
    print(yaml.dump(env_dict, indent=4, default_flow_style=False, explicit_start=True, default_style='"'))
Run Code Online (Sandbox Code Playgroud)

但现在我得到:

---
"my_vars":
  "my_env": "dev"
  "my_count": !!int "3"
Run Code Online (Sandbox Code Playgroud)

不对 YAML文件中的变量名做任何假设的情况下,我需要做什么来保持原始格式?

python quotes pyyaml

8
推荐指数
3
解决办法
7583
查看次数

从Django DateTimeField获取年份值()

从DateTimeField中提取年份的正确方法是什么?

给出的例子:

class Article(models.Model):
    title = models.CharField(_('title'), max_length=250)
    slug = models.SlugField(_('slug'), max_length=250, unique=True, default='', blank=True)
    content = models.TextField(_('content'))
    author = models.ForeignKey(settings.AUTH_USER_MODEL)
    categories = models.ManyToManyField(Category)
    tags = models.ManyToManyField(Tag)
    created = models.DateTimeField(_('created'), default=timezone.now)
    publish_date = models.DateTimeField(_('publish date'), blank=True, null=True)

    STATUS_ARTICLE = (
        ('DRAFT', _('draft')),
        ('PUBLISHED', _('published'))
    )

    status = models.CharField(_('status'), max_length=100, choices=STATUS_ARTICLE, default='DRAFT')

class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

    def __init__(self, *expressions, **extra):
        extra['output_field'] = models.SmallIntegerField()
        super().__init__(*expressions, **extra)
Run Code Online (Sandbox Code Playgroud)

试图获取所有年份的列表,以及每年的文章数量:

result = Article.objects.filter(status='PUBLISHED').annotate(Year=ExtractYear('publish_date')).values('Year').annotate(dcount=Count('Year'))
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

near "FROM": syntax error
Run Code Online (Sandbox Code Playgroud)

生成的查询是:

SELECT EXTRACT(YEAR FROM …
Run Code Online (Sandbox Code Playgroud)

python django django-queryset

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

AWS CLI和JMESPath

我想使用CLI工具来检索具有特定cname /别名的CloudFront分配的分发ID.

这就是我想出的:

aws cloudfront list-distributions --query "DistributionList.Items[?Aliases.Items!='null']|DistributionList.Items[?contains(Aliases.Items,'cname.cdn.mycompany.com') == 'true'].{Id:Id}"
Run Code Online (Sandbox Code Playgroud)

我不是JMESPath的专家,我不明白为什么我的查询不会返回结果.存在具有指定域作为别名的分发.

amazon-web-services amazon-cloudfront aws-cli jmespath

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

分配给主体的kubectl和see(cluster)角色

我可以使用kubectl来查看应用集群角色的主题,例如:

kubectl get clusterrolebindings system:node --all-namespaces -o json                                                                                                                                                                    
{
    "apiVersion": "rbac.authorization.k8s.io/v1beta1",
    "kind": "ClusterRoleBinding",
     ....
     ....
    "subjects": [
        {
            "apiGroup": "rbac.authorization.k8s.io",
            "kind": "Group",
            "name": "system:nodes"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想以相反的方式获取此信息,例如:我想列出应用于"system:nodes"主题的所有策略.

我怎样才能做到这一点?

kubernetes kubectl

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

golang多重赋值评估

我对多重分配的概念感到困惑。鉴于以下代码:

func fibonacci() func() int {
    current, next := 0, 1
    return func() int {
        current, next = next, current+next
        return current
    }
}
Run Code Online (Sandbox Code Playgroud)

鉴于两个变量都出现在赋值的左侧和右侧,如何评估赋值?

go

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