KDB: применить функцию ко всем значениям в словаре - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть словарь с разными префиксами, соответствующими разным клавишам.Я хочу добавить и предварительно добавить строки к каждому значению в словаре.

Например:

filePrefixes: `QCentral`QWest`QEast!("GLO_CCEUML_CSFBSL_";"GLO_CCALML_CSFBSL_";"GLO_CCAPML_CSFBSL_")

И я хочу предварительно проложить папку folderPath и добавить dateFormat и расширение файла ".csv".

Так что словарь должен выглядеть так:

filePrefixes: `QCentral`QWest`QEast!("..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCEUML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCALML_CSFBSL_20181203_1948.csv";"..\..\code\products\Q\ShortLocator2\Request Files\1\GLO_CCAPML_CSFBSL_20181203_1948.csv")

Я сделал что-то подобное.Не уверен, что есть лучший способ сделать это:

  filename: (value filePrefixes),\:(dateFormat,".csv");
  filePaths: string[folderPath],/:(filename);
  filePrefixes:(key filePrefixes)!(filePaths);

1 Ответ

0 голосов
/ 04 декабря 2018

Значения могут быть изменены непосредственно в словаре, если это поможет.Делая некоторые предположения для dateFormat и folderPath на основе вашего примера кода:

dateFormat:"20181203_1948";
folderPath:"..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\"

Это может быть объединено с шагами, которые вы предоставили выше, без извлечения значений:

q)show filePrefixes:folderPath,/:filePrefixes,\:dateFormat,".csv"
QCentral| "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCEUML_CSFBSL_20181203_1948.csv"
QWest   | "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCALML_CSFBSL_20181203_1948.csv"
QEast   | "..\\..\\code\\products\\Q\\ShortLocator2\\Request Files\\1\\GLO_CCAPML_CSFBSL_20181203_1948.csv"

По сути, значения действуют как список, с некоторыми ограничениями, которые кратко обсуждаются в разделе словари в Q для смертных.

...