我使用的google api以json格式返回数据,如下所示:
{
"storageLocations": [
"us"],
"autoCreated": true,
"downloadBytes": "77557"
}
返回的字段之一是storageLocations,它看起来像一个数组类型,因此我在bigquery中将其定义为重复字段
我需要使用python big query client将此数据插入到big query中,因此对于该字段,我在big query中创建了以下结构。
为了创建每一行,我添加了一个空字段row={}
,然后循环json响应并分配它,如下所示:
row["storageLocations.locations"]=response["storageLocations"]
row["autoCreated"]= response["autoCreated"]
插入数据时
对于storageLocations我得到了这个错误
u'insertErrors': [{u'index': 0, u'errors': [{u'debugInfo': u'', u'reason': u'invalid', u'message': u'no
such field.', u'location': u'storageLocations.locations'}]}
我也试过row["storageLocations"]["locations"]
,但也不起作用
因为我对python和big query还不熟悉,所以我不确定这个错误
谢谢你的建议
通常,当您使用重复记录时,往往会有多个叶字段,或者您计划将来添加更多
您正在处理的JSON响应看起来可能只需要使用字符串数组
例如:
使用更简单的模式,您应该能够在插入行时发送字符串值的列表/元组,例如
row["storageLocations"] = ['a','b','c']
如果没有这一点,您需要构建一个更加复杂的行,正如您所发现的那样
相关问题 更多 >
编程相关推荐