我正在使用适用于 Python 的 BigQuery API将数据插入到带有table.insert_data()
.
有时,一行将包含 在表模式中设置为模式的字段的None
值。REPEATED
发生这种情况时,API会返回以下错误:
[{'index': 48,
'errors': [
{u'debugInfo': u'generic::invalid_argument: Field value cannot be empty.',
u'reason': u'invalid',
u'message': u'Field value cannot be empty.',
u'location': u'name_of_my_field'}]}]
我希望这些行被忽略。这是我正在使用的函数的原型,也可以在这里找到:
insert_data(rows, row_ids=None, skip_invalid_rows=None, ignore_unknown_values=None, template_suffix=None, client=None)
这是我感兴趣的参数,因为它似乎完全符合我的需求:
skip_invalid_rows (bool) – (Optional) skip rows w/ invalid data?
它在主 API中反映了这个参数:
skipInvalidRows boolean [Optional] Insert all valid rows of a request, even if invalid rows exist. The default value is false, which causes the entire request to fail if any invalid rows exist.
但是,通过使用 with 函数skip_invalid_rows=True
,会引发相同的错误。
这个参数是否意味着我认为的意思?
值得指出:
- 为什么文档中描述的末尾有一个问号
skip_invalid_rows
? ignore_unknown_values=True
为自己的目的工作正常。
非常感谢任何帮助。:)