@在json架构中的字段名称签名,Google BigQuery

时间:2017-02-19 11:26:54

标签: json schema google-bigquery

我有一个问题,

我无法为要上传到BigQuery的json文件分配json模式,因为我的字段名称中包含@。

"Events": {
  "type": "object",
  "properties": {
    "Event": {
      "type": "object",
      "properties": {
        "@places": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer"
            },
            "comp_id": {
              "type": "string"
            },
            "manager_id": {
              "type": "integer"
            },
            "price": {
              "type": "integer"
            },
            "size": {
              "type": "integer"
            },
            "location": {
              "type": "integer"
            },
            "date": {
              "type": "object",
              "properties": {
                "locale": {
                  "type": "string"

2 个答案:

答案 0 :(得分:0)

虽然您放入JSON密钥的任何字符串都有效,但另请参阅Q: Which characters are valid/invalid in a JSON key name?,数据的使用者可能具有实际上不允许的特定要求。

在您的情况下,BigQuery是消费者,可能只是因为它不接受某些字符。如果是这种情况,除了从您的架构中移除特殊字符(' @')之外别无选择。

答案 1 :(得分:0)

JSON文件中的字段将作为BigQuery表中的字段加载。 BigQuery表的字段名中不允许使用@,因此不能在JSON文件中使用它。

来自BQ文件:

  

名称必须仅包含字母(a-z,A-Z),数字(0-9)或   下划线(_),必须以字母或下划线开头。该   最大长度为128个字符。