我有一个由程序生成的以空格分隔的名称列表,我需要将此列表转换为 json。我无法更改生成文件输出的程序。我需要将文件名.txt 中的输出转换为 json。
示例:文件输出名为 names.txt。上下文如下。
name1 name2 name3
json期望是
{
"names": [
"name1",
"name2",
"name3"
]
}
打开文件并使用字典理解
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,您可以使用dump
或dumps
根据需要将其传递给
>>> import json
>>> json.dumps(data)
'{"names": ["name1", "name2", "name3"]}'
可以通过传递“字符串”作为参数来简化jqsplit()
解决方案,然后使用它来创建一个数组,如下所示:
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"
]
}
$
$