Как получить ключи сущностей (родительское и пользовательское имя) в хранилище данных, используя python3 - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть сущность, подобная этой ниже ..

 Name/ID                   Parent                    Rollen               email          first_name      last_name
name=CidassUID  Key(Tenant, 'CidassGroupID')    ["user","admin"]    user@email.com  user first name user last name  

Теперь, например, я хотел бы запросить данные, чья электронная почта = user@email.com и получить ключ сущности (и идентификатор, и родительский элемент) .. что я делаю запись сейчас в python is

from google.cloud import datastore
def create_client(project_id):
    return datastore.Client(project_id)
def list_user(client):
    query = client.query(kind='User')
    query.add_filter('email','=','user@email.com')
    l=query.fetch()
    l=list(l)
    print(l)

Теперь он возвращает мне ответ как

[<Entity('Tenant', 'CidassGroupID', 'User', 'CidassUID') {'first_name': 'user first name', 'last_name': 'user last name', 'email': 'user@email.com', 'Rollen': ['user', 'admin']}>]

, и если я преобразую его в словарь

for entity in l:
    a=entity
d=dict(a)
print(d)

это показывает выходной сигнал как это и удаляет Entity ..

{'first_name': 'user first name', 'last_name': 'user last name', 'email': 'user@email.com', 'Rollen': ['user', 'admin']}

Как я могу получить ключи Entity, например ('Tenant', 'CidassGroupID') ('User', 'CidassUID' ) из этого ответа?

спасибо большое!

1 Ответ

1 голос
/ 18 февраля 2020

Кажется, это работает ... Я не проверял его с фактическим API Google, но он должен работать так же ...

d = dict(l[0])
keys = l[0].key.flat_path

new = {keys[i]:keys[i+1] for i in range(0, len(keys), 2)}
d.update(new)

print(d)

Вывод:

{'first_name': 'user first name', 'last_name': 'user last name', 'email': 'user@email.com', 'Rollen': ['user', 'admin'], 'Tenant': 'CidassGroupID', 'User': 'CidassUID'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...