我有一个脚本,我一直在测试谷歌的DLP,它突然停止工作:
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)
通常我会得到回复,但今天我一直在回复:
Traceback (most recent call last):
File "test_dlp.py", line 82, in <module>
response = redact_text(text_list)
File "test_dlp.py", line 42, in redact_text
content = service.content()
AttributeError: 'Resource' object has no attribute 'content'
我没有对此脚本进行任何更改,它以前已经工作过。
5 月 1 日,beta API 被弃用,因为 GA 版本现已推出。
在大多数情况下,您的脚本可以正常工作,但请切换到版本"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()]
}