Google DLP:'资源'对象没有属性'内容'

时间:2018-05-03 21:52:30

标签: google-cloud-dlp

我有一个脚本,我已经测试了谷歌的DLP,但突然停止了工作:

Sleep()

通常我会收到回复,但今天我已经回来了:

def redact_text(text_list):
    service = build_client()
    content = service.content()
    items = []
    for text in text_list:
        items.append({
          "type": "text/plain",
          "value": text
        })

    data = { "items":items,
        "inspectConfig": {
            "minLikelihood": "LIKELIHOOD_UNSPECIFIED",
            "maxFindings": 0,
            "includeQuote": False
        },
        "replaceConfigs": [{'replaceWith': redacts[info], 'infoType':{'name': info}} for info in redacts.keys()]
    }
    request = content.redact(body=data)
    response = request.execute()
    return response


def build_client():
    scopes = ['https://www.googleapis.com/auth/cloud-platform']
    credentials = ServiceAccountCredentials.from_json_keyfile_name('cred_name.json', scopes=scopes)
    http_auth = credentials.authorize(Http())

    service = build('dlp', 'v2beta1', http=http_auth)
    return service


if __name__ == '__main__':
    test_list = []
    test_text = "My name is Jenny and my number is (555) 867-5309, you can also email me at notarealemail@fakegmail.com another email you can reach me at is email@email.com.  "
    task = "inspect"
    test_list.append(test_text)
    test_list.append("bill (555) 202-4578, that one place down the road some_email@notyahoo.com")
    print(test_list)
    result = redact_text(test_list)
    print(result)

我没有对此脚本进行任何更改,并且之前已经有效。

1 个答案:

答案 0 :(得分:2)

5月1日,由于GA版本现已推出,因此不推荐使用beta版。

在大多数情况下,您的脚本可以正常工作,但切换到版本'v2'。

脚本的第二部分需要更改,即ContentItem“aka items”现在只是一个项目,而不是列表。

您可以使用

通过个别请求发送
item = {'value': content_string}

或者如果您仍希望将其批量处理为单个请求,则可以使用表格。 (我没有运行这样的借口编译拼写错误,但api表面就是这个。)

var rows = []
var headers = [{"name": "column1"}]
for text in text_list:
  rows.append({
    "string_value": text,
  })

item = {
  "table": {
    "headers": headers,
    "rows": rows
  }
}
 data = { "item":item,
          "inspectConfig": {
            "minLikelihood": "LIKELIHOOD_UNSPECIFIED",
            "maxFindings": 0,
            "includeQuote": False
        },
        "replaceConfigs": [{'replaceWith': redacts[info], 'infoType':{'name': info}} for info in redacts.keys()]
    }