我正在使用tabledata().insertAll()
这是我尝试插入的一些测试数据:
row = {
'insertId': str(i*o),
'json': {
'meterId': i*o,
'erfno': str(i),
'latitude': '123123',
'longitude': '123123',
'address': str(random.randint(1, 100)) + 'foobar street',
'readings': [
{
'read_at': time.time(),
'usage': random.randrange(50, 500),
'account': 'acc' + str(i*o)
}
]
}
}
它给了我错误:
为非重复字段指定的数组
我希望在“读数”的同时流式传输(并因此附加到重复字段)一条记录。每分钟重复一次。
答案 0 :(得分:3)
您无法更新现有行。您无法添加到现有行。你需要重新考虑这一点。别忘了BigQuery只是追加。
您可以在行中重复显示字段,但必须将其声明为模式中的字段。
在您的情况下,您需要在每次阅读时创建新行。如果您想要像这样构建数据,reading
可以是记录。
答案 1 :(得分:1)
正确!您应该考虑在表格上展开,为每个新阅读插入一个新行。