0

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

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

name1 name2 name3

json期望是

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

我可以使用

4

3 回答 3

0

打开文件并使用字典理解

with open('names.txt') as file:
    d = {'names': name.split(' ') for name in file}
    
print(d)
于 2021-09-13T13:47:27.987 回答
0

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

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

要稍后将其转换为有效的 json,您可以使用dumpdumps根据需要将其传递给

>>> import json
>>> json.dumps(data)
'{"names": ["name1", "name2", "name3"]}'
于 2021-09-13T13:47:31.890 回答
0

可以通过传递“字符串”作为参数来简化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"
  ]
}
$
$
于 2021-09-13T13:49:17.597 回答