2015-04-22 1 views
0

How to add multivalue property to jcr node through java code? говорит, что массив строк может быть создан для перехода на node.setProperty() в Java.Как добавить многозначное свойство в jcr-узел через код python с помощью cURL?

Однако, в Python, когда я создаю список и пытаюсь передать его с помощью команды curl, я получаю сообщение о том, что Python не может объединить строку и список.

list = ["one","two"] 
subprocess.Popen(['curl','-u','admin:admin','-d',"jcr:primaryType=nt:unstructured",'-d',"sling:resourceType=xxxx",'-d',"accordionType=Please Select",'-d',"accordions="+list,""+path]) 

Просьба помочь.

+0

try wrapping list with str() –

+1

Создает однозначное свойство с '[" one "," two "]' as value – koolkat

+0

Если вам нужно установить тип в multi с no или single value, вы также может добавить другую пару ключ/значение, чтобы дать подсказку типа для поля ... Что-то вроде ... accordions @ TypeHint = "String []". В противном случае сделайте так, как советуют другие, и постройте строку –

ответ

0

В списке параметров, переданных в Popen(), вы пытаетесь выполнить конкатенацию "accordions=", строку, до list, ну, список. Неудивительно, что Python запутан.

Насколько я знаю, спецификациям JCR не требуется API REST. Вы, вероятно, ссылаетесь на Sling здесь, и в этом случае вы можете добавить Sling в ключевые слова, чтобы привлечь внимание экспертов.

Я также советую использовать requests Библиотека Python для запуска внешних процессов через subprocess.