我有一个问题,即将YAML文件中的文档映射到dict并正确映射它们.
我有以下YAML文件,它代表一个server(db.yml):
instanceId: i-aaaaaaaa
environment:us-east
serverId:someServer
awsHostname:ip-someip
serverName:somewebsite.com
ipAddr:192.168.0.1
roles:[webserver,php]
Run Code Online (Sandbox Code Playgroud)
我加载这个YAML文件,我可以毫无问题地做,我想我明白了.
instanceId = getInstanceId()
stream = file('db.yml', 'r')
dict = yaml.load_all(stream)
for key in dict:
if key in dict == "instanceId":
print key, dict[key]
Run Code Online (Sandbox Code Playgroud)
我希望逻辑像以下一样工作:
instanceId匹配的是getInstanceId(),则打印出该文档的所有键和值.如果我从命令行查看地图数据结构,我得到:
{'instanceId': 'i-aaaaaaaa environment:us-east serverId:someServer awsHostname:ip-someip serverName:someserver ipAddr:192.168.0.1 roles:[webserver,php]'}
Run Code Online (Sandbox Code Playgroud)
我想我可能是不正确地为YAML文件创建数据结构,并且在匹配内容时dict,我有点迷失.
旁注:我无法加载此文件中的所有文件yaml.load(),我试过yaml.load_all(),这似乎有用,但我的主要问题仍然存在.
import argparse
parser = argparse.ArgumentParser(prog='tool')
args = [('-u', '--upf', 'ref. upf', dict(required='True')),
('-s', '--skew', 'ref. skew', {}),
('-m', '--model', 'ref. model', {})]
for args1, args2, desc, options in args:
parser.add_argument(args1, args2, help=desc, **options)
parser.print_help()
Run Code Online (Sandbox Code Playgroud)
输出:
usage: capcheck [-h] -u UPF [-s SKEW] [-m MODEL]
optional arguments:
-h, --help show this help message and exit
-u UPF, --upf UPF ref. upf
-s SKEW, --skew SKEW ref. skew
-m MODEL, --model MODEL
ref. model
Run Code Online (Sandbox Code Playgroud)
我如何打印参考.-m MODEL, --model MODEL当我使用-h …
我是 YAML 格式和 kubernetes 的新手。
下面是一个dep_prom.yml文件。
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: prometheus-deployment
name: prometheus
#namespace: prometheus
spec:
replicas: 1
template:
metadata:
labels:
app: prometheus
spec:
containers:
- image: prom/prometheus:master
name: prometheus
command:
- "/bin/prometheus"
args:
- "-config.file=/etc/prometheus/prometheus.yml"
- "-storage.local.path=/prometheus"
- "-storage.local.retention=24h"
ports:
- containerPort: 9090
protocol: TCP
volumeMounts:
- mountPath: "/prometheus"
name: data
- mountPath: "/etc/prometheus"
name: config-volume
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 500m
memory: 2500Mi
volumes:
- name: data
hostPath:
path: …Run Code Online (Sandbox Code Playgroud) 我在执行命令时遇到错误
ffmpeg -i /path/to/video.mp4:
ffmpeg version git-2012-07-24-93342de Copyright (c) 2000-2012 the FFmpeg developers
built on Jul 24 2012 23:55:41 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-vdpau --enable-version3 --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab
libavutil 51. 65.100 / 51. 65.100
libavcodec 54. 44.100 / 54. 44.100
libavformat 54. 20.100 / 54. 20.100
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 3.100 / 3. 3.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 …Run Code Online (Sandbox Code Playgroud) 我有一个带有短字符串属性的对象,以及一个长多行字符串属性.我想将短字符串写为YAML引用的标量,将多行字符串写为文字标量:
my_obj.short = "Hello"
my_obj.long = "Line1\nLine2\nLine3"
Run Code Online (Sandbox Code Playgroud)
我希望YAML看起来像这样:
short: "Hello"
long: |
Line1
Line2
Line3
Run Code Online (Sandbox Code Playgroud)
我怎样才能指示PyYAML这样做?如果我调用yaml.dump(my_obj)它,它会产生一个类似dict的输出:
{long: 'line1
line2
line3
', short: Hello}
Run Code Online (Sandbox Code Playgroud)
(不确定为什么长的是这样的双倍间距...)
我可以指示PyYAML如何对待我的属性吗?我想影响顺序和风格.
是否可以在bitbucket管道中组合多个具有相同步骤的分支?
例如:我工作的团队使用两个名称之一作为他们的评论分支,"rev"或"staging".无论哪种方式,都使用相同的步骤发布到我们的审查服务器.现在,分支被单独调出.
pipelines:
branches:
rev:
steps:
- echo 'step'
staging:
steps:
- echo 'step'
Run Code Online (Sandbox Code Playgroud)
但它可能是这样的
pipelines:
branches:
rev|staging:
steps:
- echo 'step'
Run Code Online (Sandbox Code Playgroud) 如何格式化这样的YAML文档,以便PyYAML可以正确解析它?
Data: Some data, here and a special character like ':'
Another line of data on a separate line
Run Code Online (Sandbox Code Playgroud)
我知道':'字符是特殊的所以我必须用引号括起整个东西:
Data: "Some data, here and a special character like ':'
Another line of data on a separate line"
Run Code Online (Sandbox Code Playgroud)
为了添加新行,我必须添加'\n':
Data: "Some data, here and a special character like ':'\n
Another line of data on a separate line"
Run Code Online (Sandbox Code Playgroud)
有没有格式化YAML文档,所以我不必添加\n's以便有一个新行?
我试图让ZSH配置在Mac OSX上正常工作.我用curl安装它:curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh.然后我修改了我的zshrc文件以满足我的需求.它只在我跑完后才有效source ~/.zshrc.但是如果我回来打开新标签或新终端,我必须做的source ~/.zshrc是让配置设置再次运行.有人遇到过这个问题吗?我相信有一种方法可以做到这一点,所以我不需要为~/.zshrc每个新标签做源.
当我尝试从 .tar.gz 包安装时,同时将警告变为错误:
python -W error -m pip install /some/path/nspace.pkga-0.1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: Exception:
Traceback (most recent call last):
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 324, in run
session = self.get_default_session(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 98, in get_default_session
self._session = self.enter_context(self._build_session(options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 125, in _build_session
session = PipSession(
^^^^^^^^^^^
File "/opt/util/nspace1/lib/python3.11/site-packages/pip/_internal/network/session.py", line 342, in __init__
self.headers["User-Agent"] = user_agent()
^^^^^^^^^^^^
File …Run Code Online (Sandbox Code Playgroud) 我正在执行以下python代码:
import yaml
foo = {
'name': 'foo',
'my_list': [{'foo': 'test', 'bar': 'test2'}, {'foo': 'test3', 'bar': 'test4'}],
'hello': 'world'
}
print(yaml.dump(foo, default_flow_style=False))
Run Code Online (Sandbox Code Playgroud)
但正在打印:
hello: world
my_list:
- bar: test2
foo: test
- bar: test4
foo: test3
name: foo
Run Code Online (Sandbox Code Playgroud)
代替:
hello: world
my_list:
- bar: test2
foo: test
- bar: test4
foo: test3
name: foo
Run Code Online (Sandbox Code Playgroud)
我怎样才能以my_list这种方式缩进元素?
yaml ×6
python ×5
pyyaml ×2
android ×1
argparse ×1
bitbucket ×1
dictionary ×1
ffmpeg ×1
git ×1
indentation ×1
kubectl ×1
kubernetes ×1
pip ×1
setuptools ×1
ubuntu-10.04 ×1
x264 ×1
zsh ×1
zshrc ×1