Pull to refresh
15
0
Валерий Шинкевич @kxl

Разработчик ПО

Send message

То, что Гуглу пришлось извиняться, говорит о том, что нормальных людей пока ещё больше, чем тех, что живут в "тренде"....

Ребята, а ссылку на ваш git (-hub, -lab, или что у вас там?) можете дать?

Эти стандарты ОдинЭсниками писаны и прочими франчайзингами - им это самое то по специфике их работы...

Что только не придумают, лишь бы Option не вводить...

Не знаю как в питоне с Bzip2, но я бы попробовал его. Это splittable-формат, и может обрабатываться в параллель...

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

хотя, лучше даже будет охватить такой вариант, когда последний блок не содержит "описание" и нужно получить последний из тех, что всё-таки содержат:

[{
	"operation": "shift",
	"spec": {
		"@": ["isDescript.details", "arr"]
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": "arr[]"
		},
		"*": "&"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": {
				"описание": "arr"
			}
		},
		"*": "&"
	}
}, {
	"operation": "modify-overwrite-beta",
	"spec": {
		"arr": "=lastElement(@(1,arr))"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": "isDescript.description",
		"*": "&"
	}
}]

В уже упомянутом телеграмм-канале подсказали, что я заблуждаюсь насчет последнего элемента. И если подумать, то вырисовывается такое решение:

[{
	"operation": "shift",
	"spec": {
		"@": ["isDescript.details", "arr"]
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"*": "arr[]"
		},
		"*": "&"
	}
}, {
	"operation": "modify-overwrite-beta",
	"spec": {
		"arr": "=lastElement(@(1,arr))"
	}
}, {
	"operation": "shift",
	"spec": {
		"arr": {
			"описание": "isDescript.description"
		},
		"*": "&"
	}
}]

которое даёт

{
	"isDescript": {
		"details": {
			"Предупреждения": {
				"ПРЕДУПРЕЖДЕНИЕ": "Этот картриджей."
			},
			"Основные характеристики": {
				"Назначение": "Для печатающих устройств",
				"Производитель": "Static Control",
				"Цвет чернил": "Пурпурный (Magenta)",
				"Тип оборудования": "Картридж",
				"описание": "Великолепный картридж",
				"Модель": "002-01-VF353A"
			},
			"Другие характеристики": {
				"описание": "Плохой картридж",
				"Модель": "002-01-VF353A"
			}
		},
		"description": "Плохой картридж"
	}
}

Да, можно.... Например, будет такая цепочка процессоров.

В RouteOnAttribute проверять размерность массива

Тип description сменился на массив, а это может быть не очень хорошо для принимающей стороны. Если вы уверены, что такие данные будут вам попадаться, то можно description принудительно сделать массивом.

[{
	"operation": "shift",
	"spec": {
		"*": {
			"описание": "isDescript.description[]",
			"@": "isDescript.details.&"
		}
	}
}]

Эта ситуация маловероятна со слов автора вопроса. Но, если взять эту-же спецификацию и пример

{
  "Предупреждения" : {
    "ПРЕДУПРЕЖДЕНИЕ" : "Этот картриджей."
  },
  "Основные характеристики" : {
    "Назначение" : "Для печатающих устройств",
    "Производитель" : "Static Control",
    "Цвет чернил" : "Пурпурный (Magenta)",
    "Тип оборудования" : "Картридж",
    "описание" : "Великолепный картридж",
    "Модель" : "002-01-VF353A"
  },
  "Другие характеристики" : {
    "описание" : "плохой картридж",
    "годен до" : "002-01-VF353A"
  }
}

Получится:

{
	"isDescript": {
		"details": {
			"Предупреждения": {
				"ПРЕДУПРЕЖДЕНИЕ": "Этот картриджей."
			},
			"Основные характеристики": {
				"Назначение": "Для печатающих устройств",
				"Производитель": "Static Control",
				"Цвет чернил": "Пурпурный (Magenta)",
				"Тип оборудования": "Картридж",
				"описание": "Великолепный картридж",
				"Модель": "002-01-VF353A"
			},
			"Другие характеристики": {
				"описание": "плохой картридж",
				"годен до": "002-01-VF353A"
			}
		},
		"description": ["Великолепный картридж", "плохой картридж"]
	}
}

Именно из "последнего" - никак... об этом есть в ремарка в тексте.

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

Т.е. будет один блок с полем "описание". А вот в названии ключа этого блока, который тут - "основные характеристики" могло быть всё, что угодно.

Если было бы несколько "описаний" и брать именно из последнего, то задача сильно усложнится...

Интересно.... Если нужно было хранить состояние, то почему не подошёл Flink?

Диапазон неверен... все, что я встречал => random(34.5, 36.0)

Манкипатчинг обычно не приветствуется в сообществе Ruby, и его следует избегать в Scala.

Ничего, что вся стандартная библиотека scala насквозь пронизана тем, что здесь обозвали monkey patching?

Этот Sporteco/EventFly, на который есть ссылка в конце статьи, похоже на то, что кто-то слизал akkatecture.net и бросил…
1
23 ...

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity

Specialization

Lead Software/Data Engineer