我有一个json:
“key1”:“value1”
“key2”:“value2”
和另一个文件:
value1 valueA
value2 valueB
我需要将json值(value1,value2)替换为文件中的值(valueA,valueB)。我们是否有任何python或shell脚本以递归方式从子文件查找中读取值并将其替换为第二列值!
答案 0 :(得分:-1)
您可能会尝试编写此类脚本。你需要
MultipartFile
。这是一个脚本:
dict()
答案 1 :(得分:-1)
这将完成这项工作,只要将数据分隔在一个文件中,并用空格分隔列。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
dict_ = {
"key1" : "value1",
"key2" : "value2",
}
def fileToDictionary(FILENAME):
lines = [line.rstrip() for line in open(FILENAME)]
return {k:v for (k, v) in [x.split(' ') for x in lines]}
fileDictionary = fileToDictionary(FILENAME)
items = {k: fileDictionary[v] for (k, v) in dict_.items()}
print(items)
# {'key1': 'valueA', 'key2': 'valueB'}
答案 2 :(得分:-1)
我建议使用jq(高级JSON操作工具)
输入文件:
test.json :
{
"key1" : "value1",
"key2" : "value2"
}
values.txt :
value1 valueA
value2 valueB
jq 解决方案:
jq -s '.[0] as $v | [ .[1] | to_entries | .[]
| if $v[(.value)]!=null then .value |= $v[.] else . end]
| from_entries' \
<(jq -Rs '[split("\n") | .[] | split(" ") | select(length>0)]
| reduce .[] as $a({}; .[$a[0]] |= $a[1])' values.txt) test.json
输出:
{
"key1": "valueA",
"key2": "valueB"
}