¿Cómo hacer que XPath devuelva ‘Ninguno’ en Python si no se encuentran datos?

XPath no devuelve nada si un elemento hijo no tiene valor de texto. En este caso, la calificación no tiene datos, por lo que quiero que lo diga: ninguno o nada en este niño en lugar de simplemente ignorarlo. Su aportación es muy apreciada.

XML:

   Harry Potter 29.99    Learning XML 39.95    

Python:

 >>> import lxml.html as lh >>> bk=open('book.xml','r') >>> bkout=lh.parse(bk) >>> bk.close() >>> bkout.xpath('//book/*/text()') ['Harry Potter', '29.99', 'Learning XML', '39.95'] >>> bkout.xpath('//book/* and not(text())/text()') True 

Salida deseada :

 ['Harry Potter', '29.99', '', 'Learning XML', '39.95', ''] or ['Harry Potter', '29.99', None, 'Learning XML', '39.95', None] 

Eliminar el “texto ()”:

 In [16]: [x.text for x in bk.xpath("//book/*")] Out[16]: ['Harry Potter', '29.99', None, 'Learning XML', '39.95', None]