Как сделать так, чтобы DictReader открывал файл с точкой с запятой в качестве разделителя полей?

На массивах нет метода append(). Вместо этого, как уже было сказано, объект List может обслуживать необходимость динамической вставки элементов, например.

List<String> where = new ArrayList<String>();
where.add(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.add(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");

Или если вы действительно хотите использовать массив:

String[] where = new String[]{
    ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1",
    ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1"
};

, но затем это фиксированный размер, и никакие элементы не могут быть добавлены.

1
задан Zero Piraeus 8 March 2019 в 11:01
поделиться

1 ответ

Оба DictReader и DictWriter принимают произвольные аргументы, включая delimiter, и передают их нижележащему объекту reader или writer в качестве документации говорит:

class csv.DictReader (…)

Все остальные необязательные аргументы или аргументы ключевых слов передаются в базовый reader экземпляр.

class csv.DictWriter (…)

Любые другие необязательные или ключевые аргументы передаются в базовый [ 119] экземпляр.

Изменение соответствующей строки в вашем коде выше на

    r = csv.DictReader(infile, delimiter=";")

должно работать как положено.

0
ответ дан Zero Piraeus 8 March 2019 в 11:01
поделиться
Другие вопросы по тегам:

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