标签: yaml

运行时错误:分配给nil映射中的条目

我试图生成一个地图,然后将其转换为yaml文件,如下所示:

uid :
      kasi:
        cn: Chaithra
        street: fkmp
      nandan:
        cn: Chaithra
        street: fkmp
      remya:
        cn: Chaithra
        street: fkmp
Run Code Online (Sandbox Code Playgroud)

我认为在创建地图时我遗漏了一些重要的东西.我的代码如下.

package main

import (
    "fmt"
    "gopkg.in/yaml.v2"
)

type T struct {
    cn     string
    street string
}

func main() {
    names := []string{"kasi", "remya", "nandan"}

    m := make(map[string]map[string]T, len(names))
    for _, name := range names {

        //t := T{cn: "Chaithra", street: "fkmp"}

        m["uid"][name] = T{cn: "Chaithra", street: "fkmp"}

    }
    fmt.Println(m)

    y, _ := yaml.Marshal(&m)

    fmt.Println(string(y))
    //fmt.Println(m, names)
}
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

panic: runtime error: …
Run Code Online (Sandbox Code Playgroud)

yaml map go

84
推荐指数
4
解决办法
8万
查看次数

application.yml是否支持环境变量?

我尝试在我的application.yml configration中使用env变量,如:

spring:
  main:
    show_banner: false

---

spring:
  profiles: production
server:
  address: $OPENSHIFT_DIY_IP
  port: $OPENSHIFT_DIY_PORT
Run Code Online (Sandbox Code Playgroud)

但是env变量没有解决.我必须提供不同的符号吗?

在Rails中,您可以使用<%= ENV ['FOOVAR']%>

唯一的选择是运行应用程序,如:

java -jar my.jar --server.address=$OPENSHIFT_DIY_IP --server.port=$OPENSHIFT_DIY_PORT
Run Code Online (Sandbox Code Playgroud)

java spring yaml spring-boot

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

是否有YAML语法用于共享列表或地图的一部分?

所以,我知道我可以这样做:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist: *sites
Run Code Online (Sandbox Code Playgroud)

并拥有sitelistanotherlist都包含www.foo.comwww.bar.com.不过,我真正想要的是anotherlist包含www.baz.com,而无需重复www.foo.comwww.baz.com.

这样做会在YAML解析器中出现语法错误:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist: *sites
  - www.baz.com
Run Code Online (Sandbox Code Playgroud)

只使用锚和别名,似乎不可能做我想要的而不添加另一级子结构,例如:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist:
  - *sites
  - www.baz.com
Run Code Online (Sandbox Code Playgroud)

这意味着此YAML文件的使用者必须了解它.

有一种纯粹的YAML方式做这样的事情吗?或者我是否必须使用一些后YAML处理,例如实现变量替换或自动提升某些类型的子结构?我已经在进行那种后处理来处理其他一些用例,所以我并不完全厌恶它.但我的YAML文件将由人类编写,而不是由机器生成,因此我希望尽量减少用户在标准YAML语法之上需要记忆的规则数量.

我也希望能够用地图做类似的事情:

namedsites: &sites
  Foo: www.foo.com
  Bar: www.bar.com

moresites: *sites
  Baz: www.baz.com
Run Code Online (Sandbox Code Playgroud)

我有一个搜索YAML规范,但找不到任何东西,所以我怀疑答案只是"不,你不能这样做".但是,如果有人有任何想法会很棒.


编辑:由于没有答案,我假设没有人发现我在YAML规范中没有的任何东西,并且这不能在YAML层完成.所以我打开了一个问题,想要对YAML进行后处理以帮助解决这个问题,以防将来有人发现这个问题.

arrays dictionary yaml cross-reference

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

YAML或JSON中的语言代码列表?

在那里的YAML或JSON中是否有语言代码列表?

另一种格式很好,我可以在必要时进行转换.

json yaml

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

如何合并YAML数组?

我想在YAML中合并数组,并通过ruby加载它们 -

some_stuff: &some_stuff
 - a
 - b
 - c

combined_stuff:
  <<: *some_stuff
  - d
  - e
  - f
Run Code Online (Sandbox Code Playgroud)

我想将组合数组作为 [a,b,c,d,e,f]

我收到错误:在解析块映射时没有找到预期的键

如何在YAML中合并数组?

yaml list data-structures

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

在Vim中编辑Yaml时出现错误的缩进

Vim似乎没有正确地对YAML文件中的破折号进行反应,因此打破了格式.

例如,我有一个块应该是这样的:

  handlers:
        - name: restart exim4
          service: name=exim4 state=restarted
Run Code Online (Sandbox Code Playgroud)

当我完成输入restart exim4并输入service:Vim reindents时,我的最后service一行:

  handlers:
        - name: restart exim4
        service: name=exim4 state=restarted
Run Code Online (Sandbox Code Playgroud)

很明显,Vim尝试按排列句子,但这不是YAML所需要的.我想创建一个包含两个值的数组.

如何解决?

vim yaml

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

rails错误,无法解析YAML

更新宝石后我得到了这个:

/home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 182 column 9 (Psych::SyntaxError)
    from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse_stream'
    from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:119:in `parse'
    from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:106:in `load'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:6:in `<module:LATEX>'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:3:in `<top (required)>'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `<top (required)>'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `<top (required)>'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `block in require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
    from /home/megas/Work/railscasts/config/application.rb:10:in `<top (required)>'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
    from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:28:in `block in …
Run Code Online (Sandbox Code Playgroud)

yaml redcloth ruby-on-rails-3

76
推荐指数
8
解决办法
8万
查看次数

将YAML与变量一起使用

YAML文件中的变量是否可能?例如:

theme:
  name: default
  css_path: compiled/themes/$theme.name
  layout_path: themes/$theme.name
Run Code Online (Sandbox Code Playgroud)

在这个例子中,如何theme: name: default在其他设置中使用?语法是什么?

ruby variables yaml ruby-on-rails string-interpolation

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

在Python中解析YAML文件并访问数据?

我是YAML的新手,一直在寻找解析YAML文件和使用/访问解析后的YAML数据的方法.

我遇到了关于如何解析YAML文件的解释,例如,PyYAML 教程," 我如何在Python中解析YAML文件 "," 将Python dict转换为对象? ",但我没有找到的是关于如何从解析的YAML文件访问数据的简单示例.

假设我有一个YAML文件,例如:

 treeroot:
     branch1: branch1 text
     branch2: branch2 text
Run Code Online (Sandbox Code Playgroud)

如何访问"branch1 text"文本?

" YAML解析和Python? "提供了一个解决方案,但是我在从更复杂的YAML文件访问数据时遇到了问题.而且,我想知道是否有一些标准的方法从解析的YAML文件访问数据,可能类似于" 树迭代 "或" 元素路径 "符号或解析XML文件时将使用的东西?

python xml parsing yaml

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

如何在yaml中创建关联数组列表

我试图在yaml中存储一些配置变量,表示为关联数组,也就是字典.我是这样做的:

content_prices:                                                                                                                                                                                                                               
  - {country: AU, price: 6990000}                                                                                                                                                                                                             
  - {country: AT, price: 4990000}                                                                                                                                                                                                             
  - {country: BE, price: 4990000}  
Run Code Online (Sandbox Code Playgroud)

当我尝试从我的ROR init文件解析它时会产生异常:

undefined方法`symbolize_keys!' 为零:NilClass

以下是我如何创建它:

Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys!
Run Code Online (Sandbox Code Playgroud)

我猜我的yaml语法错了,那怎么写得好呢?

dictionary yaml associative-array ruby-on-rails

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