Заполнить по записи в Google Refine
У меня есть следующий CSV-файл с разделителями-запятыми в Google уточнение:
Как заполнить значения из column1, используя Jython или GREL, чтобы стать:
Я пытался:
if value is None:
return row["record"]["cells"]["column1"]["value"][0]
else:
return value
Какие-либо предложения? благодарю вас
1 ответ
Сложной частью вашего примера является идентификатор записи 1, поскольку у вас есть два разных значения в column1 в одной записи.
Таким образом, чтобы завершить это, вы должны
- Создайте новый индекс, объединив
ID
а такжеcolumn1
поле (см. учебник) - Используйте выражение
row.record.cells["Column1"].value[0]
заполнить вниз (см. учебник)
Я успешно сделал это в 6 шагов, вот код JSON для применения к вашему проекту:
[
{
"op": "core/column-addition",
"description": "Create column ID2 at index 2 based on column Column1 using expression grel:cells['ID'].value+value",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"newColumnName": "ID2",
"columnInsertIndex": 2,
"baseColumnName": "Column1",
"expression": "grel:cells['ID'].value+value",
"onError": "set-to-blank"
},
{
"op": "core/text-transform",
"description": "Text transform on cells in column ID2 using expression grel:cells['ID'].value",
"engineConfig": {
"facets": [
{
"invert": false,
"expression": "isBlank(value)",
"selectError": false,
"omitError": false,
"selectBlank": false,
"name": "ID",
"omitBlank": false,
"columnName": "ID",
"type": "list",
"selection": [
{
"v": {
"v": false,
"l": "false"
}
}
]
},
{
"invert": false,
"expression": "isBlank(value)",
"selectError": false,
"omitError": false,
"selectBlank": false,
"name": "Column1",
"omitBlank": false,
"columnName": "Column1",
"type": "list",
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
]
}
],
"mode": "row-based"
},
"columnName": "ID2",
"expression": "grel:cells['ID'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/text-transform",
"description": "Text transform on cells in column ID2 using expression grel:cells['Column1'].value",
"engineConfig": {
"facets": [
{
"invert": true,
"expression": "value",
"selectError": false,
"omitError": false,
"selectBlank": true,
"name": "Column1",
"omitBlank": false,
"columnName": "Column1",
"type": "list",
"selection": [
{
"v": {
"v": " ",
"l": " "
}
}
]
},
{
"invert": false,
"expression": "isBlank(value)",
"selectError": false,
"omitError": false,
"selectBlank": false,
"name": "ID",
"omitBlank": false,
"columnName": "ID",
"type": "list",
"selection": [
{
"v": {
"v": true,
"l": "true"
}
}
]
}
],
"mode": "row-based"
},
"columnName": "ID2",
"expression": "grel:cells['Column1'].value",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-move",
"description": "Move column ID2 to position 0",
"columnName": "ID2",
"index": 0
},
{
"op": "core/text-transform",
"description": "Text transform on cells in column Column1 using expression grel:row.record.cells[\"Column1\"].value[0]",
"engineConfig": {
"facets": [],
"mode": "record-based"
},
"columnName": "Column1",
"expression": "grel:row.record.cells[\"Column1\"].value[0]",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/column-removal",
"description": "Remove column ID2",
"columnName": "ID2"
}
]