小编Ant*_*hon的帖子

来自键路径的嵌套字典值

借助键路径从嵌套字典中获取值,这里是dict:

json = {
    "app": {
        "Garden": {
            "Flowers": {
                "Red flower": "Rose",
                "White Flower": "Jasmine",
                "Yellow Flower": "Marigold"
            }
        },
        "Fruits": {
            "Yellow fruit": "Mango",
            "Green fruit": "Guava",
            "White Flower": "groovy"
        },
        "Trees": {
            "label": {
                "Yellow fruit": "Pumpkin",
                "White Flower": "Bogan"
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

该方法的输入参数是以点分隔的键路径,从键路径="app.Garden.Flowers.white Flower"需要打印'Jasmine'.我的代码到目前为止:

import json
with open('data.json') as data_file:    
  j = json.load(data_file)


def find(element, JSON):     
  paths = element.split(".")  
  # print JSON[paths[0]][paths[1]][paths[2]][paths[3]]
  for i in range(0,len(paths)):
    data = JSON[paths[i]]
    # data = data[paths[i+1]]
    print …
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

如何在javascript中删除2d数组中的行

如何使用行号删除JavaScript中的二维数组中的行.如果我想删除第4行中的所有元素,那该怎么办?

javascript multidimensional-array delete-row

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

通过Python编辑YAML文件

我有一个YAML文件,如下所示:

# Sense 1
- name  : sense1
  type  : float
  value : 31

# sense 2
- name  : sense2
  type  : uint32_t
  value : 1488

# Sense 3
- name  : sense3
  type  : int32_t
  value : 0

- name  : sense4
  type  : int32_t
  value : 0
- name  : sense5
  type  : int32_t
  value : 0
- name  : sense6
  type  : int32_t
  value : 0
Run Code Online (Sandbox Code Playgroud)

我想使用Python打开这个文件,更改一些值(见上文)并关闭文件.我怎样才能做到这一点 ?

例如,我想设置sense2 [value] = 1234,保持YAML输出相同.

python yaml edit

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

Conda'ImportError:没有名为ruamel.yaml.comments的模块'

当我用它运行任何命令时,Conda会出错.

Traceback (most recent call last):
  File "/usr/local/bin/conda", line 7, in <module>
    from conda.cli.main import main
  File "/usr/local/lib/python2.7/dist-packages/conda/cli/__init__.py", line 8, in <module>
    from .main import main  # NOQA
  File "/usr/local/lib/python2.7/dist-packages/conda/cli/main.py", line 46, in <module>
    from ..base.context import context
  File "/usr/local/lib/python2.7/dist-packages/conda/base/context.py", line 18, in <module>
    from ..common.configuration import (Configuration, MapParameter, PrimitiveParameter,
  File "/usr/local/lib/python2.7/dist-packages/conda/common/configuration.py", line 40, in <module>
    from ruamel.yaml.comments import CommentedSeq, CommentedMap  # pragma: no cover
ImportError: No module named ruamel.yaml.comments
Run Code Online (Sandbox Code Playgroud)

python yaml anaconda conda ruamel.yaml

12
推荐指数
5
解决办法
2万
查看次数

在 YAML 中,如何注释一行的一部分?

在 YAML 中,如何注释一行的一部分?

例如:

- name: "JAVA_OPTIONS"
value: "-Dconfig.dir.path=$(CONF_PATH) -Dpoint.dir.path=$(POINT_PATH)-
Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$(LOG_PATH) 
-DMY_POD_NAME=$(MY_POD_NAME)"
Run Code Online (Sandbox Code Playgroud)

如何在值行内注释字符串?

喜欢"-Dpoint.dir.path=$(POINT_PATH)"会被评论,但所有其余的都会生效。

yaml

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

linux高平板缓存使用率

在我的一台服务器上,我有一些内存/磁盘KV服务,内存KV的行为类似于memcached,在初始化时要求一个大内存(10GB),磁盘Kv表现得像leveldbd,它的随机读取和顺序写入,它经常读了很多文件.内存全部使用libc malloc分配.

我的KV服务器进程不会消耗大量内存,如下所示(由于内存不足,我已经杀死内存KV,只留下磁盘KV,但可用内存仍然下降):

:~$top
PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20 0 5030m 3.9g 2772 S 8 6.1 10430:52 tair_server
20 0 4833m 3.9g 4560 S 8 6.1 10171:07 tair_server
20 0 4844m 3.9g 3844 S 38 6.1 10073:32 tair_server
20 0 4765m 3.8g 4144 S 8 6.0 10552:39 tair_server
20 0 2941m 2.4g 9.8m S 0 3.8 256:45.70 tair_server
20 0 2953m 2.4g 12m S 1 3.7 276:54.64 tair_server
Run Code Online (Sandbox Code Playgroud)

但是,我的记忆消失了.

$free -m

             total       used       free …
Run Code Online (Sandbox Code Playgroud)

linux memory

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

如何在YAML中表示价值+单位?

我正在设计一个新的配置/数据格式,它将在YAML中.许多输入是int/float值,带有相关单位(例如升,夸脱,品脱,秒,分钟......).

我一直在搜索和阅读,但仍然无法弄清楚:在YAML中将单位与配置项关联的最佳方法是什么?

示例:假设我有几种饮料的清单,(除其他外),我想输入它们的音量.我可以想到几个方面,但(至少在我看来)它们都不是真正理想的:

  1. 要求以相同单位输入所有音量值.

    强制用户自己进行单位转换,这是单调乏味,容易出错并且以后难以验证,因为现在数量输入不同于为饮料列出的原始数量.(饮料来自几个不同的来源,每个来源可能使用不同的度量单位.)

  2. 一系列体积和单位表示值.例:

    volume: [ 0.5, Gallons ]
    
    Run Code Online (Sandbox Code Playgroud)

    (映射也会起作用,虽然更详细)序列可能没问题,但我不确定我是否对此感到满意.

  3. 使用两个"音量"值,一个用于值,另一个用于单位.例:

    volume_value: 0.5
    volume_units: Gallons
    
    Run Code Online (Sandbox Code Playgroud)

    我认为这不是首发.详细,非常松散的关联,容易出错.

  4. 改为使用字符串,并在应用程序中解析它.例:

    volume: 0.5 Gallons
    
    Run Code Online (Sandbox Code Playgroud)

    最简单的输入,并且很容易编写一个健壮的解析器.看起来可能有点像黑客,但......

  5. 应用标签:

    volume: !gallons 0.5
    
    Run Code Online (Sandbox Code Playgroud)

    不确定这个,因为我是YAML的新手并且还没有很好地理解标签.或许,语法更脆弱一些.


所以,问题是:根据YAML规范,或事实上的最佳实践/惯例,是否有一种表示价值+单位的特定方式?无论是我列出的五个之一还是别的,我都希望有一个"正确的答案",留在网站问题指南中.

yaml config

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

PyYaml - 使用特殊字符(即重音符号)转储unicode

我正在使用yaml文件,这些文件必须是人类可读和可编辑的,但也可以从Python代码编辑.我正在使用Python 2.7.3

该文件需要处理重音(主要用于处理法语文本).

以下是我的问题示例:

import codecs
import yaml

file = r'toto.txt'

f = codecs.open(file,"w",encoding="utf-8")

text = u'héhéhé, hûhûhû'

textDict = {"data": text}

f.write( 'write unicode     : ' + text + '\n' )
f.write( 'write dict        : ' + unicode(textDict) + '\n' )
f.write( 'yaml dump unicode : ' + yaml.dump(text))
f.write( 'yaml dump dict    : ' + yaml.dump(textDict))
f.write( 'yaml safe unicode : ' + yaml.safe_dump(text))
f.write( 'yaml safe dict    : ' + yaml.safe_dump(textDict))

f.close()
Run Code Online (Sandbox Code Playgroud)

书面文件包含:

write unicode     : héhéhé, …
Run Code Online (Sandbox Code Playgroud)

python unicode yaml non-ascii-characters pyyaml

11
推荐指数
2
解决办法
5336
查看次数

要求数组在Swagger架构对象定义中包含至少一个元素

我在我的模式中有这样的模式对象定义swagger.yaml:

User:
  type: object
  properties:
    username:
      type: string
      description: the user name
    colors:
      type: array
      items: {
        type: string,
        enum: [ "red", "blue", "green" ]
      }
      description: user must have one or more colors associated
  required:
    - username
    - colors
Run Code Online (Sandbox Code Playgroud)

但是,生成的服务器仍然很乐意接受使用此架构对象的POST请求作为不包含任何colors字段的必需body参数.

我是否可以在模式对象中color始终需要字段的方式配置Swagger,User理想情况下还必须包含枚举中的至少一个或多个项目?

rest swagger swagger-2.0

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

Env变量.ebextensions"files:"部分

我在AWS Elastic Beanstalk的软件配置选项卡中定义了一个名为MY_ENVIRONMENT_VARIABLE的环境变量.

现在我想在.ebextensions配置文件的"files:"部分中使用此环境变量.

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: S3
          buckets: arn:aws:s3:::SomeS3Bucket
          roleName: aws-elasticbeanstalk-ec2-role

files:
  "/tmp/application.properties" :
    mode: "000644"
    owner: root
    group: root
    source: { "Ref" : "MY_ENVIRONMENT_VARIABLE" }
    authentication: S3Auth

container_commands:
  01-apply-configuration:
    command: mv /tmp/application.properties .
Run Code Online (Sandbox Code Playgroud)

似乎可以在"container_commands:"部分引用环境变量(通过使用bash脚本),但我找不到任何可以在"files:"部分内引用的引用.

有没有人有一个如何在"files:"部分中使用环境变量的例子?

amazon-s3 amazon-web-services amazon-elastic-beanstalk ebextensions

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