Как отформатировать 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"

Как я могу это сделать? Благодарю


Ответы (0 шт):