使用:BigQuery InsertAll over HTTP
(客户端库不是选项-基于规则的案例管理系统-仅使用HTTP客户端)
这个身体:
{
"rows": [
{
"insertId": 123456,
"json": {
"my_object": {
"json": {
"name": "Alice",
"age": 30
}
}
}
}
],
"traceId": "test"
}
字符串
我们得到这样的回应:
{
"kind": "bigquery#tableDataInsertAllResponse",
"insertErrors": [
{
"index": 0,
"errors": [
{
"reason": "invalid",
"location": "my_object",
"debugInfo": "",
"message": "This field: my_object is not a record."
}
]
}
]
}
型
在这里,我们尝试了my_object语法的许多变体。
对于此表结构:
... HTTP API调用的JSON主体中的JSON对象应该如何构造?
注意:我们可以为my_object提供文字值(标量字符串,数字等)-但这需要是JSON对象。
注意:有很多关于客户端库语法和对象设置的描述…但客户端库在此环境中不是一个选项。
1条答案
按热度按时间disbfnqx1#
对于您的要求,请考虑以下解决方法:
第一种解决方法(使用客户端库):
Python代码:
字符串
有关详细信息,请参阅此link
第二种解决方法(使用云函数):
您可以考虑使用Google Cloud功能来满足您的需求。上面的代码稍加修改就可以在cloud函数中运行,我们可以使用http请求trigger cloud函数。我们可以通过http url发送json数据,然后我们可以在cloud函数中获取数据,然后我们可以将其插入到bigquery表中。
有关更多信息,请参阅此link。
第三种解决方法(使用转义符和双引号,BigQuery InsertAll):
型
JSON数据表示为带有转义字符和双引号的字符串。有关更多信息,您可以参考link和link2。
结果:
的数据