将文件中 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"
]
}
打开文件并使用字典理解
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"]}'
jq 解决方案可以通过传递 '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"
]
}
$
$
我有一个由程序生成的 space 分隔的姓名列表,我需要将此列表转换为 json。我无法更改生成文件输出的程序。我需要将文件 names.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"]}'
jq 解决方案可以通过传递 '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"
]
}
$
$