ガブリエルミラノ:
私は私が働いていると、今、私は取り除くことができない何かに直面しているプロジェクトのフラスコとAPIと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+----------+---------+-------+"
これは、文字が適切な場所にあり、それが動作する必要があることを見ることは可能だが、それはしていません。
私はそれが文字列の先頭と終わりの両方のこれらの引用符とは何かを持っていることが推測するが、私はわからないんだけど、それについて何をすべきかわかりません。
君たちは私が右のそれを得るのを助けることはできますか?
ガブリエルミラノ:
まあ、私はそれを固定する方法を見つけました。API側では、私が実行してJSONへの応答を回します:
return jsonify(
error_code=HTTPStatus.OK,
message=t.get_string()
)
代わりに、私の前のreturn t.__str__()
。
その後、CLI上で、私が行います。
print (r.json()['message'])
それは魔法のように動作します!
おかげで、みんな。