DefaultListModel
имеет только конструктор, который не принимает аргументов; вы не можете передать нужные значения в качестве аргумента конструктора. Вам нужно будет создать DefaultListModel, а затем заполнить его, например:
HashMap<String, String> inst1 = new HashMap(instructorIO.getInstructors());
instListModel = new DefaultListModel<String>();
for (String value : inst1.values())
{
instListModel.addElement(value);
}
Относительно задачи 2 & amp; 3.
Вы должны распечатать его без вывода Unicode.
Ссылка здесь на написание файла JSON.
Как записать данные JSON в файл?
Что касается задачи 3.:
Если вы хотите, чтобы порядок был сохранением, вам следует использовать OrderedDict
:
О u'foo'
:
Это нормальное поведение Python, u'something'
означает, что ваша строка является строкой Unicode. подробнее о строках Unicode см. Здесь
Вы можете исправить это, просто используя эту строку, чтобы записать dict
в виде строки JSON, кстати, вы должны всегда использовать [114 ] (или json.dumps()
) для записи строки JSON:
text_file.write(json.dump(data))
О порядке ключей :
Во-первых, RFC JSON прямо говорит об этом:
Объект - это неупорядоченная коллекция из нуля или более пар имя / значение, где имя - это строка, а значение - это строка, число, логическое значение, ноль, объект, или массив.
blockquote>Здесь « object » означает « hash », это то, что мы называем « dictionnaries » с помощью Python. Это означает, что ключи строки JSON никогда не упорядочены.
Кроме того,
data = json.load(json_file)
загружает строку JSON и анализирует ее в словарь Python. Диконы Python также не упорядочены (по крайней мере, до Python3.7).Это означает две вещи:
- Вы не можете прочитать файл JSON в ожидаемом порядке.
- Согласно пункту 1, не имеет смысла писать строку JSON в определенном порядке (поскольку вы не сможете прочитать ее в том же порядке)
Вы уверены, что это на самом деле работает? (очистить все .pyc)
Данные являются диктонарными, и вы перебираете ключи (строки) и рассматриваете их как диктовку
for tuple in data:
tuple['creationTime'] -= int(timedelta(days = day_start).total_seconds())