Как отформатировать json так, чтобы вместо string, в нужных местах мне отображались список и число?
У меня есть json файл.
Когда я его считываю, он имеет формат:
{
"params": {
"queryVector": "%s",
"max_score": "%s",
"name": "%s"
}
}
Я хочу его отформатировать, вот таким образом
{
"params": {
"queryVector": [1, 2, 3],
"max_score": 34,
"name": "Test"
}
}
Как видите у меня значением для ключа queryVector должен быть список, а для ключа max_score - число
Когда я его форматирую, я делаю вот так:
query = json.load(open("query.json"))
query = (json.dumps(query) % ([1, 2, 3], 34, "Test"))
body = eval(query)
Как следствие у меня получается:
{'params': {'queryVector': '[1, 2, 4]', 'max_score': '34', 'name': 'Test'}}
Как видите, у меня значение для queryVector - это строка '[1, 2, 4]', а значением для ключа max_score, есть другая строка '34', хотя мне нужно чтобы первое значением было списком, а не строкой, а второе - числом, а не строкой.
Я не могу изменить источник - я всегда буду считывать этот json c файла, но я могу повлиять на формат данных в файле, скажем вместо "%s" использовать "%d"
Как я могу это сделать? Благодарю