将文件中 space 分隔的名称列表转换为 json 格式的 json 文件

convert space separated list of names within a file to json formatted json file

我有一个由程序生成的 space 分隔的姓名列表,我需要将此列表转换为 json。我无法更改生成文件输出的程序。我需要将文件 names.txt 中的输出转换为 json.

示例:文件输出名为 names.txt。上下文如下。

name1 name2 name3

json 期望是

{
    "names": [
        "name1",
        "name2",
        "name3"
    ]
}

我有 and 可以使用。

打开文件并使用字典理解

with open('names.txt') as file:
    d = {'names': name.split(' ') for name in file}
    
print(d)

您可以只读第一行,按空格拆分,然后创建所需的字典

with open('names.txt') as f:
    names = f.readline().spilt()
    data = {'names': names}

为了稍后将其变为有效 json,您可以使用 dumpdumps,具体取决于您需要将其传递给

>>> import json
>>> json.dumps(data)
'{"names": ["name1", "name2", "name3"]}'

解决方案可以通过传递 'string' 作为参数来简化,然后使用 split() 创建一个数组,如下所示:

jq -n --arg d "$(cat input)" '{ "names": $d | split(" ") }'

本地示例:

$ cat input
name1 name2 name3
$
$ jq -n --arg d "$(cat input)" '{ "names": $d | split(" ") }'
{
  "names": [
    "name1",
    "name2",
    "name3"
  ]
}
$
$