Python 与 google 云语言 api 问题?
Python with google cloud language api Problem?
为 python 使用 google-cloud-language 库 如何从以下方法中获取返回的 JSON。
client.classify_text()
client.analyze_entity_sentiment()
方法 response.serializetostring()
似乎以无法在 python 中解码的方式对结果进行编码。不是 UTF-8 或 unicode 转义。
我想得到 JSON 以便我可以将它转储到 mongodb.
提前致谢。
您可以使用 google.protobuf.json_format.MessageToJson
方法将普通 protobuf 对象序列化为 JSON。例如:
from google.cloud import language
from google.protobuf.json_format import MessageToJson
client = language.LanguageServiceClient()
document = language.types.Document(
content='Mona said that jogging is very fun.',
type='PLAIN_TEXT',
)
response = client.analyze_entity_sentiment(
document=document,
encoding_type='UTF32',
)
print(MessageToJson(response))
打印:
{
"entities": [
{
"name": "Mona",
"type": "PERSON",
"salience": 0.6080747842788696,
"mentions": [
{
"text": {
"content": "Mona"
},
"type": "PROPER",
"sentiment": {
"magnitude": 0.10000000149011612,
"score": 0.10000000149011612
}
}
],
"sentiment": {
"magnitude": 0.10000000149011612,
"score": 0.10000000149011612
}
},
{
"name": "jogging",
"type": "OTHER",
"salience": 0.39192524552345276,
"mentions": [
{
"text": {
"content": "jogging",
"beginOffset": 15
},
"type": "COMMON",
"sentiment": {
"magnitude": 0.8999999761581421,
"score": 0.8999999761581421
}
}
],
"sentiment": {
"magnitude": 0.8999999761581421,
"score": 0.8999999761581421
}
}
],
"language": "en"
}
为 python 使用 google-cloud-language 库 如何从以下方法中获取返回的 JSON。
client.classify_text()
client.analyze_entity_sentiment()
方法 response.serializetostring()
似乎以无法在 python 中解码的方式对结果进行编码。不是 UTF-8 或 unicode 转义。
我想得到 JSON 以便我可以将它转储到 mongodb.
提前致谢。
您可以使用 google.protobuf.json_format.MessageToJson
方法将普通 protobuf 对象序列化为 JSON。例如:
from google.cloud import language
from google.protobuf.json_format import MessageToJson
client = language.LanguageServiceClient()
document = language.types.Document(
content='Mona said that jogging is very fun.',
type='PLAIN_TEXT',
)
response = client.analyze_entity_sentiment(
document=document,
encoding_type='UTF32',
)
print(MessageToJson(response))
打印:
{
"entities": [
{
"name": "Mona",
"type": "PERSON",
"salience": 0.6080747842788696,
"mentions": [
{
"text": {
"content": "Mona"
},
"type": "PROPER",
"sentiment": {
"magnitude": 0.10000000149011612,
"score": 0.10000000149011612
}
}
],
"sentiment": {
"magnitude": 0.10000000149011612,
"score": 0.10000000149011612
}
},
{
"name": "jogging",
"type": "OTHER",
"salience": 0.39192524552345276,
"mentions": [
{
"text": {
"content": "jogging",
"beginOffset": 15
},
"type": "COMMON",
"sentiment": {
"magnitude": 0.8999999761581421,
"score": 0.8999999761581421
}
}
],
"sentiment": {
"magnitude": 0.8999999761581421,
"score": 0.8999999761581421
}
}
],
"language": "en"
}