Как правильно разобрать значения bool в lxml.objectify? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь создать xml с lxml.objectify в Python, используя серию CSV с данными и перебирая их как кадры данных Pandas. Дело в том, что у меня есть значения во фреймах данных как «True» или «False», но когда я пытаюсь построить xml и проверить его, они отображаются в виде строк. Это должно быть как true / false, строчные буквы должны оцениваться как bool.

Как мне этого добиться?


Application = data_frames['Application'].astype(object).replace(np.nan, '')

root = objectify.Element('Application')
objectify.deannotate(root, cleanup_namespaces=True)
for row in Application.itertuples():        
    root.set('ApplicationDate',row.ApplicationDate)
    root.set('SWDecision', row.SWDecision)
    root.set('DeliveryOptionCode',row.DeliveryOptionCode)
    root.set('ProcessingRequestType',row.ProcessingRequestType)
    root.set('ResubmissionFlag',row.ResubmissionFlag)
   root.set('ApplicationCrossReferenceId',str(row.ApplicationCrossReferenceId))

Если я отлаживаю подобный код, я получаю сообщение об ошибке типа

root.set('SWDecision', row.SWDecision)
root.set('ResubmissionFlag',row.ResubmissionFlag)

Оба хранятся в фрейме данных Pandas как «True» или «False».

Если я преобразую их в строку, как это python root.set('SWDecision', str(row.SWDecision)), это отладка ОК, но встроенный XML, когда я передаю его стороннему приложению для чтения, я получаю сообщение об ошибке в этих атрибутах, говоря, что они должны быть логическое значение, а не строка.

Как правильно построить XML с этими значениями в виде логических значений, а не строк?

...