我正在用Python编写测试,我在参数中指定JSON sting,如下所示:
json = '...[{"MemberOperand":{"AttributeName":"TEST","Comparison":"=","Value":"Test"}}]...'
在这个例子中我的值为“Test”但是我想用几个值运行测试。你能告诉我怎样才能参数化“价值”的价值?
答案 0 :(得分:3)
您可以构建适当的JSON:
import json
the_value = 'Test'
data = [{"MemberOperand": {
"AttributeName":"TEST",
"Comparison":"=",
"Value": the_value}
}]
json_text = json.dumps(data)
答案 1 :(得分:1)
这是格式化为字符串的常规字典(嵌套) -
def changer(x):
import json
d=json.loads(json.loads(json.dumps('[{"MemberOperand":{"AttributeName":"TEST","Comparison":"=","Value":"Test"}}]')))
d[0]['MemberOperand']['AttributeName']=x
return d
print changer('New_TEST')
输出 -
[{'MemberOperand': {'Comparison': '=', 'AttributeName': 'New_TEST', 'Value': 'Test'}}]
答案 2 :(得分:0)
添加函数,该函数始终以提供的值作为参数返回不同的json字符串:
def get_mock_json(value='Test'):
return '...[{"MemberOperand":{"AttributeName":"TEST","Comparison":"=","Value":%s}}]...'%value
print get_mock_json('test')
print get_mock_json('ttttttest')