1

Когда вы запрашиваете файл ndb dtastore для приложения, мы получаем список, подобный этому.присоединить к возвращенному списку запросов Google App Engine ndb

[Example(key=Key('Example', 5136918324969472), content=u'hellow', created_on=datetime.datetime(2016, 5, 21, 13, 6, 25, 784956), date=datetime.datetime(2016, 3, 20, 0, 0), modified_on=None, published=True, soft_deleted=False, stars=0), Example(key=Key('Example', 5699868278390784), content=u'hi how r u!', created_on=datetime.datetime(2016, 5, 21, 13, 6, 25, 568392), date=datetime.datetime(2016, 3, 20, 0, 0), modified_on=None, published=True, soft_deleted=False, stars=0)] 

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

[ 
    { 
    "modifiedOn": null, 
    "id": "6051711999279104", 
    "stars": 0, 
    "tags": [], 
    "softDeleted": false, 
    "date": "2016-03-20 00:00:00", 
    "content": "hello", 
    "createdOn": "2016-05-21 13:06:24" 
    }, 
    { 
    "modifiedOn": null, 
    "id": "4925812092436480", 
    "stars": 0, 
    "tags": [], 
    "softDeleted": false, 
    "date": "2016-03-20 00:00:00", 
    "createdOn": "2016-05-21 13:06:16" 
    } 
] 

С помощью query.fetch_page() мы можем получить cursor значение взамен. Я хочу, чтобы он был в возвращенном списке, прежде чем json его кодирует. Я могу просто добавить его методом list.append(), но это не было бы ключом, значением. Мне это нравится:

[ 
    { 
    "modifiedOn": null, 
    "id": "6051711999279104", 
    "stars": 0, 
    "tags": [], 
    "softDeleted": false, 
    "date": "2016-03-20 00:00:00", 
    "content": "hello", 
    "createdOn": "2016-05-21 13:06:24" 
    }, 
    { 
    "modifiedOn": null, 
    "id": "4925812092436480", 
    "stars": 0, 
    "tags": [], 
    "softDeleted": false, 
    "date": "2016-03-20 00:00:00", 
    "createdOn": "2016-05-21 13:06:16" 
    }, 
    "cursor": "dhiugdgdwidfwiflfsduifewrr3rdufif", 
    "more": false 
] 

Спасибо.

Примечание: список выше и json - это просто представление, не возвращаемое фактическими данными, поэтому значения могут быть неправильными.

+1

Это странное представление, список должна содержать тот же тип элемента. Разве это не должно быть {result: [], cursor = xxx, more = True} – marcadian

ответ

1

Проблема в том, что желаемое представление недействительно json.

Вы могли бы получить что-то подобное, выполнив:

results, cursor, more = query.fetch_page() 
dict_representation = {"results": results, "cursor": cursor, "more": more} 
json_representation = json.dumps(dict_representation) 

И результат будет что-то вроде следующего:

{ 
    "results":[ 
     { 
     "modifiedOn":null, 
     "id":"6051711999279104", 
     "stars":0, 
     "tags":[ 

     ], 
     "softDeleted":false, 
     "date":"2016-03-20 00:00:00", 
     "content":"hello", 
     "createdOn":"2016-05-21 13:06:24" 
     }, 
     { 
     "modifiedOn":null, 
     "id":"4925812092436480", 
     "stars":0, 
     "tags":[ 

     ], 
     "softDeleted":false, 
     "date":"2016-03-20 00:00:00", 
     "createdOn":"2016-05-21 13:06:16" 
     } 
    ], 
    "cursor":"dhiugdgdwidfwiflfsduifewrr3rdufif", 
    "more":false 
} 
Смежные вопросы