Я разрабатываю API с Flask и flask_restful и соответствующим CLI для проекта, над которым я работаю, и столкнулся с чем-то, от чего я не могу избавиться. На стороне API, когда я получаю запрос к определенной конечной точке, я использую библиотеку PrettyTable для построения цветной таблицы на терминале. Я строю таблицу следующим образом:
t = PrettyTable([ Color.CGREEN2 + 'Username' + Color.CEND,
Color.CGREEN2 + 'Dataset' + Color.CEND,
Color.CGREEN2 + 'Files' + Color.CEND])
for ds in db.getAllDatasets( username ):
t.add_row( [username, ds.dataset, len(ds.files)] )
return t.__str__()
Я пытался вернуть объект t , но он не был JSON сериализуемым. Вызвав метод __ str __ , я смог его успешно вернуть, но просто не смог правильно распечатать вывод на моем терминале. Код, который я использую для этого:
try:
r = requests.post(url='http://my-server:my-port/my-endpoint', data=data)
print (str(r.text))
except requests.exceptions.ConnectionError:
MSG_ERROR (self, "Failed to connect to LPS Cluster.")
И вывод, который я получаю:
"+----------+---------+-------+\n| \u001b[92mUsername\u001b[0m | \u001b[92mDataset\u001b[0m | \u001b[92mFiles\u001b[0m |\n+----------+---------+-------+\n+----------+---------+-------+"
Можно видеть, что символы находятся в нужном месте, и это должно работает, но это не так.
Я думаю, это может иметь какое-то отношение к этим кавычкам как в начале, так и в конце строки, но я не уверен и не знаю, что делать это.
Можете ли вы, ребята, помочь мне сделать это правильно?