我正在尝试将JSON文件中的静态变量替换为文本字符串列表中的静态变量。
以下是JSON的一个示例:
{
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
}
在JSON文件中,我需要将PARA替换为[cd, pid, pod]
我正在寻找类似的输出:
{
"ignorecase": true,
"parameter": "cd",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "pid",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "pod",
"type": "querystring"
}
我认为用Python做起来应该很容易,但我有点挣扎。这是我正在使用的代码:
import re
def repl(matchobj):
return str(y.pop(0))
x=''' {
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
},
{
"ignorecase": true,
"parameter": "PARA",
"type": "querystring"
}'''
y=['cd', 'pid', 'pod']
print re.sub(r"PARA",repl,x)
我得到的错误是TypeError: unhashable type: 'list'
希望找到一种更好的方法来设置它并能够解析JSON并轻松替换。谢谢!
答案 0 :(得分:2)
我认为有一个标准库json可以满足您的需求。
具体而言,您希望使用json.loads(x)
阅读它,修改后您将json.dumps(modified_x)
答案 1 :(得分:1)
使用json标准库。将你的json变成字典,修改它,然后将它序列化为json。您感兴趣的函数是hasAuthority
用于Dump-String,它将本机python数据结构转换为json字符串,dumps
用于Load-String,它是反向的。
例如
loads