Pretty print JSON python

если кто-нибудь с некоторыми знаниями о довольно печатной JSON может мне помочь в этом, я был бы чрезвычайно благодарен!

Я хочу преобразовать сложную строку python в формат JSON, используя следующую функцию для перемещения строки JSON в файл:

with open('data.txt', 'wt') as out:
    pprint(string, stream=out)

Проблема в том, что я получаю синтаксические ошибки для квадратных скобок, которые, как я считаю, поскольку это новая тема для меня, и я не могу понять, как обойти это. Формат JSON, который мне нужен, выглядит следующим образом:

  {
        cols:[{id: 'Time', "label":"Time","type": "datetime"},
              {id: 'Time', "label":"Latency","type":"number"}],
        rows:[{c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}, 
              {c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}
              ]
    }

Я слежу за API визуализации Google, вы можете быть знакомы с ним, но мне нужны динамические графики. Вышеприведенный код - это формат, который API требует для создания графика, поэтому я занимаюсь выяснением того, как получить мои данные из MYSQL в этот формат, чтобы график мог читать и отображаться. Метод, о котором я думал, состоял в том, чтобы периодически обновлять файл, содержащий требуемый формат JSON, поэтому присутствуют% s, однако MartijnPeters предполагает, что это неверно.

Кто-нибудь знает простейший способ, которым я могу это сделать, или вы можете указать мне на любой материал, который может помочь? Спасибо!!

Ответ 1

Вы пишете представления Python, а не JSON.

Используйте json.dump() функцию для написания довольно печатного JSON вместо этого непосредственно в ваш файл:

with open('data.txt', 'wt') as out:
    res = json.dump(obj, out, sort_keys=True, indent=4, separators=(',', ': '))