2

Cassandra 2.1.2 ベースのデータベースにクエリを実行し、結果を JSON 形式で返す API を作成しています。これにはcqlengineを使用しています。

これが簡略化されたスキーマです -

class Checkins(Model):
    Model.__comment__ = "Table mapping for submit datastore"
    changelist     =  columns.Integer (primary_key= True)                                 # Changelist number
    checkin_date   =  columns.DateTime()                                                  # Submit time
    stream_name    =  columns.Ascii   (primary_key= True)                                 # Stream-name
    creator        =  columns.Ascii   ()                                                  # Creator

私のクエリはこれです

clobj = Checkins.objects(changelist=changelist).get()

結果セットを json 形式に変換するにはどうすればよいですか?

4

1 に答える 1

0

cqlengine 0.12 以降では、モデルから辞書を作成できます。そこから、json モジュールを使用して JSON 形式を取得できます。日時は json でシリアル化できないため、注意が必要です。したがって、最初に文字列に変換する必要があります (または、日時のシリアル化の問題を修正する他の方法については、この質問を参照してください)。

import json

clobj = Checkins.objects(changelist=changelist).get()
clobj_dict = dict(clobj_dict)
clobj_dict['checkin_date'] = str(clobj_dict['checkin_date'])
json_string = json.dumps(clobj_dict)

または、クラスのプロパティとして追加できます

import json

class Checkins(Model):
    # Define your model as before
    # ...

    @property
    def json(self):
        # Perform the same thing as before.
        json_dict = dict(self)
        json_dict['checkin_date'] = str(json_dict['checkin_date'])
        return json.dumps(clobj_dict)

# Just call the property.
clobj = Checkins.objects(changelist=changelist).get()
json_string = clobj.json
于 2015-03-12T20:42:07.097 に答える