当前位置: 首页 > 面试题库 >

将具有key = value对的文本文件转换为jq中的特定json格式

阳光辉
2023-03-14
问题内容

我在input.txt中有一个具有以下值的文本文件

key1=value1\r
key2=value2
key3=value3\r
key4=value4

需要jq rexpression通过删除“ \ r”将其转换为以下json格式

output.json

{
"Environment": {
    "Variables": {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3",
        "key4": "value4"
    }
}

}

我试过下面的表达式并得到

jq -Rs [ split("\n")[] | select(length > 0) | split("=") | {(.[0]): .[1]} ]

并获得以下输出

[
  {
   "key1ey1": "Value1\r"
  },
  {
   "key2": "value2"
  },
  {
   "key3": "value3\r"
  },
  {
   "key4": "value4"
  }

]

问题答案:

jq 解:

jq -sR '{"Environment":
            {"Variables": [split("\n")[:-1][] | rtrimstr("\\r") 
                             | split("=") | {(.[0]): .[1]}
                          ]  | add
            }
        }' input.txt

输出:

{
  "Environment": {
    "Variables": {
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
      "key4": "value4"
    }
  }
}

警告

此解决方案假定=未出现在输入字符串的“值”部分中。



 类似资料:
  • 问题内容: 在jq中,如何将JSON转换为字符串? 从: 至: 问题答案: 您可以尝试: 这是一个演示:

  • 我有一个这样的数组: 我想使用JavaScript将其转换为如下格式的JSON: 感谢您的帮助。

  • 问题内容: 如何加载YAML文件并将其转换为Python JSON对象? 我的YAML文件如下所示: 问题答案: 你可以使用PyYAML 并在ipython控制台中:

  • 问题内容: 我想将字符串日期转换为特定时区和特定格式的DateTime对象。我该怎么做 ? 字符串日期可以是世界上使用的任何格式。示例MM-DD-YYYY,YYYY-MM-DD,MM / DD / YY,MM / DD / YYYY等。TimeZone可以是用户指定的任何合法时区。 示例-将太平洋时区的YYYY-MM-DD转换为MM / DD / YY。 问题答案: 使用建立一个格式,它能够解析/

  • 我有一个如下的文本文件 我需要像下面的格式一样转换成json 对于javascript应用程序。

  • 问题内容: 我可以从word2vec网站下载GoogleNews-vectors- negative300.bin.gz。.bin文件(大约3.4GB)是对我无用的二进制格式。Tomas Mikolov向我们保证:“将二进制格式转换为文本格式应该很简单(尽管这将占用更多的磁盘空间)。检查距离工具中的代码,读取二进制文件相当简单。” 不幸的是,我对C的了解不足,无法理解http://word2vec