2017-06-06 11 views
2

私は現在不協和音のボットを作っていますが、その1つはSQLテーブルからデータを取り出すことです。これはAioOdbcモジュールを使用しています。これはPyodbcとほぼ同じです。非同期関数ではブロックされません。pyodbcの出力をより読みやすく/より良くするにはどうすればよいですか?

この形式で出力します。

[('Item1',),('Item2',)] 

どのように出力することができますか、少し読みやすいですか?可能性のあるもの

Item1, Item2 

何か助けてください!

答えて

5

あなたはすべてのアイテムは、このコードで、コンマとスペースで区切られた文字列に変換することができます:itemsはこの名である

itemString = ', '.join((item[0] for item in items)) 

[('Item1',),('Item2',)]

は、あなたがそれを必要とする場合そのようなこのリストのように、任意の深さでネストされたリストから外にアイテムを取ることができる:[('Item1', 'Item2', ('Item3')), ('Item4', 'Item5')]、あなたはこのコードを使用することができます:

def flatten(nested): 
    for element in nested: 
     if isinstance(element, collections.Iterable) and not isinstance(element, (str, bytes)): 
      yield from flatten(element) 
     else: 
      yield element 
+0

番目を参照考えてみましょう'flatten'コードのソースです。元の著者はDavid Beazleyです(詳細はhttps://stackoverflow.com/a/40857703/4531270をご覧ください)。 – pylang

+0

私は 'flatten'コードを書きました。 Davidの答えは2016年の11月でしたが、私は2016年の夏にPythonツールキットパッケージの最初の部分を書きました。私はDavidの答えをアップヴォートします。 –

+0

私が投稿したリンクはDavid Beazleyの投稿ではなく、私のものです(アップフォートは彼のものと仮定していません)。私はここにリンクを追加しました。彼はCookbook(第3版、2013年頃)から完全な参照を得ています。つまり、元の著者はわかりません。それがあなたなら、レシピに感謝します。 – pylang

関連する問題