Google DLP: "ValueError: сообщение протокола Value не имеет поля" stringValue "." - PullRequest
0 голосов
/ 10 мая 2018

У меня есть метод, в котором я создаю таблицу для нескольких элементов для DLP Google inspect API , которая может принимать либо ContentItem , либо таблицу из значения

Вот как создается запрос:

def redact_text(text_list):
    dlp = google.cloud.dlp.DlpServiceClient()
    project = 'my-project'
    parent = dlp.project_path(project)
    items = build_item_table(text_list)

    info_types = [{'name': 'EMAIL_ADDRESS'}, {'name': 'PHONE_NUMBER'}]
    inspect_config = {
        'min_likelihood': "LIKELIHOOD_UNSPECIFIED",
        'include_quote': True,
        'info_types': info_types
    }
    response = dlp.inspect_content(parent, inspect_config, items)

    return response


def build_item_table(text_list):
    rows = []
    for item in text_list:
        row = {"values": [{"stringValue": item}]}
        rows.append(row)
    table = {"table": {"headers": [{"name": "something"}], "rows": rows}}
    return table

Когда я запускаю это, я получаю сообщение об ошибке ValueError: Protocol message Value has no "stringValue" field. Даже если этот пример и документы говорят иначе.

Есть ли что-то не так в том, как я строю запрос?

Редактировать: Вот вывод из build_item_table

{
    'table':
    {
        'headers': 
        [
            {'name': 'value'}
        ], 
        'rows': 
        [
            {
                'values': 
                [
                    {
                        'stringValue': 'My name is Jenny and my number is (555) 867-5309, you can also email me at anemail@gmail.com, another email you can reach me at is email@email.com.  '
                    }
                ]
            }, 
            {
                'values': 
                [
                    {
                        'stringValue': 'Jimbob Doe (555) 111-1233, that one place down the road some_email@yahoo.com'
                    }
                ]
            }
        ]
    }
}

1 Ответ

0 голосов
/ 11 мая 2018

Попробуйте string_value .... python использует имена полей, а не имя типа.

...