Что лучший способ состоит в том, чтобы получить минуту и макс. значение из списка Comparables, которые основной содержат нулевые значения?

Функция lxml.etree.parse() ожидает строку в качестве имени файла. Если вы хотите вместо этого передать содержимое файла, вам нужно обернуть его в StringIO или BytesIO (в данном случае, последнее):

from io import BytesIO
from google.cloud import storage
import lxml.etree as ET

client = storage.Client()
bucket = client.get_bucket('customerfile02')
xmlblob = bucket.blob('testprofile.xml')
inputxml = xmlblob.download_as_string()
xmldom = ET.parse(BytesIO(inputxml))

См. Документацию lxml здесь: https://lxml.de/parsing.html .

6
задан Ciro Santilli 新疆改造中心法轮功六四事件 2 June 2015 в 12:23
поделиться

2 ответа

Что случилось с Collections.max?

И почему Вы заботитесь о пустой безопасности? Вы уверены, что хотите позволить, аннулирует, чтобы быть в Вашем Наборе?

39
ответ дан 8 December 2019 в 02:12
поделиться

Если действительно необходимо исключить "пустой указатель" из результата, и Вы не можете препятствовать тому, чтобы он был в Вашем массиве, то, возможно, необходимо просто выполнить итерации через массив с простым циклом и отслеживать "минуту" и "макс." в отдельных переменных. Можно все еще использовать, "сравнивают ()" метод на каждом объекте сравнить его с текущей "минутой" и "макс." значениями. Таким образом, можно добавить собственный код для проверки пустые указатели и игнорирования их.

Править: вот некоторый код для иллюстрирования то, о чем я говорю. К сожалению, существует пограничный случай, необходимо ли рассмотреть - что, если все аргументы передали в, являются пустыми? Что возвращает Ваш метод?

public static <T extends Comparable<T>> T minOf(T...ts){
    T min = null;
    for (T t : ts) {
        if (t != null && (min == null || t.compareTo(min) < 0)) {
            min = t;
        }
    }
    return min;
}

public static <T extends Comparable<T>> T maxOf(T...ts){
    T max = null;
    for (T t : ts) {
        if (t != null && (max == null || t.compareTo(max) > 0)) {
            max = t;
        }
    }
    return max;
}
4
ответ дан 8 December 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: