Ошибка разделителя csv загрузчика GAE

У меня есть файл в следующем формате

name- stuffinside -description name- stuffinside -description "ame- stuffinside -description

и у меня есть следующий бит в качестве кода моего массового загрузчика:

t

ransformers: 
- kind: storeItem 
connector: csv 
connector_options: 
encoding: utf-8 
column_list: [name, stuffinside,description]
 property_map:
 - property: key
 external_name: name export_transform: transform.key_id_or_name_as_string

- property: name
  external_name: name

- property: stuffinside
  external_name: stuffinside
  import_transform: "lambda x: x.split('-')"

- property: description
  external_name: description

проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить его прочитать файл, разделенный символом «-» и состоящий из 3 разных частей. Я хочу, чтобы это было похоже

name = x[0]
stuffinside =x[1]
description = x[2]

При чтении из файла у меня нет проблем с этим, но я понятия не имею, как это сделать в этом формате массовой загрузки движка приложения. Любые идеи о том, что я делаю неправильно?


person user2202316    schedule 02.07.2013    source источник


Ответы (1)


Вы уверены, что "-" является хорошим символом для использования в качестве разделителя полей? Вполне вероятно, что содержимое может содержать этот символ и испортить ваши поля.

Не могли бы вы сначала преобразовать «-» во вкладки, а затем следовать этому примеру:

Из http://bulkloadersample.appspot.com/showfile/bulkloader.yaml:

# A sample using a TSV file with no header, specifying the columns here.
- model: models.Visit
  connector: csv
  connector_options:
    encoding: windows-1252
    # TSV is specified using an extra parameter of the Python csv module.
    import_options:
      dialect: excel-tab
    export_options:
      dialect: excel-tab
    # Columns here are a sequence in YAML, so can be specified in either block
    # or flow style. This is short enough that I'll use flow style.
    column_list: [visitid, customer, date, score, activities]
  property_map:
    - property: __key__
      external_name: visitid
      export_transform: datastore.Key.name
    - property: customer
      external_name: customer
      import_transform: transform.create_foreign_key('Customer')
      export_transform: datastore.Key.name
    - property: visit_date
      external_name: date
      import_transform: transform.import_date_time('%m/%d/%Y')
      export_transform: transform.export_date_time('%m/%d/%Y')
    - property: score
      external_name: score
      import_transform: float
    - property: activities
      external_name: activities
      # This is a CSV list of strings inside the TSV file.
      import_transform: "lambda x: x.split(',')"
      export_transform: "','.join"
person user1431972    schedule 02.07.2013
comment
хорошо, часть моей проблемы в том, что часть текста между ними имеет запятые. Поэтому я хочу разделить его другим разделителем. и я вручную просмотрел весь свой контент. нет - в нечетных местах. это только в тех местах, где я их поставил. имя-stuffinside-описание - person user2202316; 08.07.2013
comment
name-stuffinside-description новые строки, и этот формат повторяется повсюду. - person user2202316; 08.07.2013