Часть A - пустые строки
В настоящее время я работаю над визуализацией данных Kyran Dale с использованием Python и JavaScript.Из примера 3.1 у меня есть это:
nobel_winners = [
{'name' : 'Albert Einstein',
'nationality': 'German',
'sex' : 'male',
'category' : 'Physics',
'year' : 1921},
{'name' : 'Paul Dirac',
'nationality': 'British',
'sex' : 'male',
'category' : 'Physics',
'year' : 1933},
{'name' : 'Marie Curie',
'nationality': 'Polish',
'sex' : 'female',
'category' : 'Chemistry',
'year' : 1911}
]
cols = nobel_winners[0].keys()
# cols.sort() # <<== this produces an error - see below
with open('./nobel_winners.csv', 'w') as f:
f.write(','.join(cols) + '\n')
for o in nobel_winners:
row = [str(o[col]) for col in cols]
f.write(','.join(row) + '\n')
with open('./nobel_winners.csv') as f:
for line in f.readlines():
print(line),
Теперь результирующий файл (noble_winners.csv) выглядит следующим образом:
name,nationality,sex,category,year
Albert Einstein,German,male,Physics,1921
Paul Dirac,British,male,Physics,1933
Marie Curie,Polish,female,Chemistry,1911
, что хорошо, НО , когда я делаю распечатку (последние 3 строки кода), я получаю это:
[pol@UNKNOWN example_3.1]$ python example3.1.py
name,nationality,sex,category,year
Albert Einstein,German,male,Physics,1921
Paul Dirac,British,male,Physics,1933
Marie Curie,Polish,female,Chemistry,1911
[pol@UNKNOWN example_3.1]$
т.е. между каждой строкой есть пробелы (которых я не хочу!).Автор конкретно говорит о запятой в самом конце здесь (последняя строка кода) print (строка),"Добавление запятой после вызова функции print запрещает добавление ненужногоНовая строка. ".
Очевидно, это не так.Если я удалю запятую, то получу тот же результат, то есть пробелы в моей распечатке.
Я хотел бы знать:
как получить «чистую» распечатку- то есть без пустых строк и
некоторого понимания того, что автор пытался сделать - что должен делать этот «трюк» с запятыми?Как это должно работать?
Часть B - меньшая точка, но все же любопытно.
Если я раскомментирую строку cols.sort (), я получуthis:
[pol @ UNKNOWN example_3.1] $ python example3.1.py Traceback (последний вызов был последним): файл "example3.1.py", строка 20, в cols.sort () #<< == это приводит к ошибке - см. ниже AttributeError: у объекта 'dict_keys' нет атрибута 'sort' </p>
Теперь я даже не понимаю, что автор получает здесь
почему он пытается использовать метод, который не существует?
даже если это сработало, какой смысл - у него просто будут заголовки столбцовне синхронизировано с его данными?
Любое объяснение (я) с благодарностью получено.