该表有两个键:(filename分区键)和eventTime(排序键)。我想更新eventTime某些filename。尝试put_item()和update_item()发送同样的filename新的eventTime,但这些功能添加一个新的项目,而不是更新的。
我应该为此目的使用什么?
代码:
assets = {} # line 1
def myfunc():
global assets # line 4
if assets.get("a", None) is None:
assets["a"] = 2
Run Code Online (Sandbox Code Playgroud)
pylint 结果:
C: 1, 0: Invalid constant name "assets" (invalid-name)
C: 4, 4: Invalid constant name "assets" (invalid-name)
W: 4, 4: Using global for 'assets' but \
no assignment is done (global-variable-not-assigned)
Run Code Online (Sandbox Code Playgroud)
该函数稍后将被多次调用,所以我只想分配(在现实生活中一些耗时的过程)该值一次。
我应该怎样做才正确呢?
ps:谢谢@deceze,我对以下事实感到困惑:如果assets = {}我不使用,assets = {"a":2}行为将完全不同。
我知道至少有两个yq,我正在使用这个:https://github.com/mikefarah/yq。根据文档,我可以验证yaml这样的文件:
yq -v file.yaml
Run Code Online (Sandbox Code Playgroud)
问题:它输出大量调试信息,但是根据文档,它应该输出“如果[文件]有效,则不输出任何内容,否则它将打印错误”。据我所知,该文件看起来有效。
如果文件有效,我应该如何避免输出?
文件:
name: Copywrite
on:
push:
tags:
- v*
branches:
- main
pull_request:
workflow_dispatch:
jobs:
copywrite:
name: Run Header Copyright
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@93ea575cc8 # v3.1.0
- name: Install Copywrite
id: install
uses: hashicorp/setup-copywrite@v1.0.0
- name: Output Installed Copywrite Version
run: echo "Installed Copywrite CLI ${{steps.install.outputs.version}}"
- name: Run Copywrite Header Compliance
run: copywrite headers --plan
Run Code Online (Sandbox Code Playgroud)
输出:
yq -v ./file.yml
16:52:54 processArgs [DEBU] …Run Code Online (Sandbox Code Playgroud) terraform plan被中止,现在无法获取状态锁。我正在尝试手动释放它,但出现错误:
terraform force-unlock -force xxx-xxx-xx-dddd
Failed to unlock state: failed to retrieve lock info:
unexpected end of JSON input
Run Code Online (Sandbox Code Playgroud)
状态文件看起来完整并成功通过了 json 语法验证。
如何解决?