DictWriter
次のコードを実行したときの出力として、正しいものを1つ選べ。
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, ["a", "b"])
w.writeheader()
w.writerow({"a": 1, "b": 2})
print(repr(buf.getvalue()))
- A
'a,b\n1,2\n' - B
'a,b\r\n1,2\r\n' - C
'1,2\r\n' - D
'a;b\r\n1;2\r\n'
正解と解説を見る
正解:B
csv.DictWriter は、辞書の行を、列の順序(fieldnames)に従って書き出す。既定の行末は \r\n。ファイルに書くときは newline="" で開く。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import csv, io` | — |
| 2 | `buf = io.StringIO()` | — |
| 3 | `w = csv.DictWriter(buf, ["a", "b"])` | — |
| 4 | `w.writeheader()` | — |
| 5 | `w.writerow({"a": 1, "b": 2})` | — |
| 6 | `print(repr(buf.getvalue()))` | — |
| 結果 | 実際の出力 | 'a,b\r\n1,2\r\n' |
- A
誤り。既定の行末は
\r\n。lineterminatorで変更できる。 - B
正しい。
csvモジュールの既定の行末は\r\n。writeheaderで見出し行を書く。 - C
誤り。
writeheaderで見出し行も書く。 - D
誤り。既定の区切りはカンマ。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。