【问题标题】:App Engine BadValueError On Bulk Data Upload - TextProperty being construed as StringProperty批量数据上传时出现 App Engine BadValueError - TextProperty 被解释为 StringProperty
【发布时间】:2011-03-26 22:24:27
【问题描述】:

bulkoader.yaml:

transformers: 
    - kind: ExampleModel 
      connector: csv 
      property_map: 
        - property: __key__ 
          external_name: key 
          export_transform: transform.key_id_or_name_as_string 
        - property: data 
          external_name: data 
        - property: type 
          external_name: type 

模型.py:

class ExampleModel(db.Model): 
        data = db.TextProperty(required=True) 
        type = db.StringProperty(required=True) 

一切似乎都很好,但是当我上传时出现此错误: BadValueError: Property data is 24788 bytes long; it must be 500 or less. Consider Text instead, which can store strings of any length.

由于某种原因,它认为 data 是一个字符串属性。

有人知道我该如何解决这个问题吗?

【问题讨论】:

    标签: google-app-engine google-cloud-datastore bigtable data-import


    【解决方案1】:

    您需要为文本字段指定一个导入转换,如下所示:

    - property: data
      external_name: data
      import_transform: db.Text
    

    【讨论】:

    • 谢谢。但现在我得到:解析 yaml 文件时出错:无法将值“db.Text”分配给属性“import_transform”:import_transform 的代码无效。代码:“db.Text”。详细信息:名称“db”未在“bulkloader.yaml”第 33 行第 29 列中定义
    • 您需要将“from google.appengine.ext import db”添加到您的 Python 导入部分。
    • 啊!就这么简单。 >_> 谢谢尼克!
    • 嗨尼克,我已将“import_transform: db.Text”添加到 bulkloader.yaml 但我仍然看到一个错误:BadValueError: Property story_html is 3132 bytes long;它必须是 500 或更少。请考虑使用 Text,它可以存储任意长度的字符串。
    • 谢谢尼克,这很有用! :)
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多