質問編集履歴

3

にh

2018/06/14 06:47

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- csv 出力関数の引数の受け渡し方法 初心者
1
+ 日本語指定方法エラー UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in
test CHANGED
@@ -1,151 +1,55 @@
1
- お世話になります。初心者です。
1
+ お世話になります。
2
2
 
3
+ 日付と日本語で書くと掲題のエラーが出ます。ローマ字の場合はエラーは出ません。通ります。
4
+
5
+ 調べたところutfー指定だと感じているのですが
6
+
7
+ 具体的に方法はどのように記載すればいいのでしょうか?
8
+
3
- csvを出力る関数を作りました
9
+ 環境 PYTHONISTA iPadです。
4
10
 
5
11
 
6
12
 
7
- しかしメインからどのようによべばいいのかわかりません。
8
-
9
- というのもメインから呼び出す際に、3つだったり5
10
-
11
- だったりcsvを出力したい変数は異なります。
12
-
13
- 異なる変数で呼び出す際はどのように記載すればいいのでしょうか
14
-
15
-
16
-
17
- 配列にして渡したいのですが具体的な指定方法がわからずテラテイルで質問しています。
18
-
19
-
20
-
21
-
22
-
23
- 例えば以下のように毎回格納したい変数の数が違う場合はどのように指定すれば
24
-
25
- いのでょうか
13
+ よろしくお願いします。
26
14
 
27
15
 
28
16
 
29
17
  ```ここに言語を入力
30
18
 
31
- Inputaaa = a
19
+ import csv
32
20
 
33
- Inputbbb = b
21
+ import datetime
34
-
35
- Inputccc = c
36
22
 
37
23
 
38
24
 
39
- create_csv(information)
25
+ def create_csv(variable_field):
26
+
27
+
28
+
29
+ with open('aaaaa.csv', 'a', newline='') as f:
30
+
31
+ writer = csv.writer(f)
32
+
33
+ for_write_time = datetime.datetime.now() # 2018-05-14 09:59:07.812884
34
+
35
+
36
+
37
+ fixed_field = ['日付', datetime.date.today(), 'hour',
38
+
39
+ "{}:{}:{}".format(for_write_time.hour, for_write_time.minute, for_write_time.second), 'microsecond',for_write_time.microsecond]
40
40
 
41
41
 
42
42
 
43
- Inputaaa = 1
43
+ 出力
44
44
 
45
- Inputbbb = 2
46
-
47
- Inputccc = 3
48
-
49
- Inputddd = 4
45
+ writer.writerow(fixed_field + variable_field) # 固定項目+可変項目
50
-
51
- Inputeee = 5
52
-
53
- Inputfff = 6
54
46
 
55
47
 
56
48
 
49
+ create_csv(['var1',11,'var2',22,'var3','three','var4',4])
50
+
51
+ create_csv(['var1',1,'var3',333])
52
+
57
- create_csv(information)
53
+ create_csv([5,6,7,8])
58
54
 
59
55
  ```
60
-
61
-
62
-
63
- 初歩的な質問となり大変申し訳ございません。
64
-
65
- なお日時は固定で出力したいので、直接かきました。
66
-
67
-
68
-
69
- ```ここに言語を入力
70
-
71
- def create_csv(information):
72
-
73
-
74
-
75
- with open('balance_result.csv', 'a', newline='') as f:
76
-
77
- writer = csv.writer(f)
78
-
79
- for_write_time = datetime.datetime.now() # 2018-05-14 09:59:07.812884
80
-
81
-
82
-
83
- writer.writerow([
84
-
85
- '日時', datetime.date.today(), '時間',
86
-
87
- "{}:{}:{}".format(for_write_time.hour, for_write_time.minute, for_write_time.second), 'マイクロセカンド',for_write_time.microsecond,
88
-
89
-
90
-
91
- ここに追加したいのですが出力したいホゲの数は呼び出す毎に異なる為
92
-
93
- どのように以下をかけばいいのでしょうか
94
-
95
-
96
-
97
- "例えばほげ1", information["hoge1"],
98
-
99
- "例えばほげ2", information["hoge2"],
100
-
101
- "例えばほげ3", information["hoge3"]
102
-
103
- ])
104
-
105
- ```
106
-
107
-
108
-
109
- 可変の配列格納方法として以下を利用したいです
110
-
111
- ```ここに言語を入力
112
-
113
- def func_kwargs(arg1, **kwargs):
114
-
115
- print('arg1', arg1)
116
-
117
- for k, v in kwargs.items():
118
-
119
- print(k, v)
120
-
121
-
122
-
123
- func_kwargs(**{'arg1': 'one', 'arg2': 'two', 'arg3': 'three'})
124
-
125
- # arg1 one
126
-
127
- # arg2 two
128
-
129
- # arg3 three
130
-
131
-
132
-
133
- func_kwargs(**{'arg1': 'one', 'arg2': 'two', 'arg3': 'three', 'arg4': 'four'})
134
-
135
- # arg1 one
136
-
137
- # arg2 two
138
-
139
- # arg3 three
140
-
141
- # arg4 four
142
-
143
-
144
-
145
- func_kwargs(**{'arg1': 'one', 'arg3': 'three'})
146
-
147
- # arg1 one
148
-
149
- # arg3 three
150
-
151
- ```

2

ああ

2018/06/14 06:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -103,3 +103,49 @@
103
103
  ])
104
104
 
105
105
  ```
106
+
107
+
108
+
109
+ 可変の配列格納方法として以下を利用したいです
110
+
111
+ ```ここに言語を入力
112
+
113
+ def func_kwargs(arg1, **kwargs):
114
+
115
+ print('arg1', arg1)
116
+
117
+ for k, v in kwargs.items():
118
+
119
+ print(k, v)
120
+
121
+
122
+
123
+ func_kwargs(**{'arg1': 'one', 'arg2': 'two', 'arg3': 'three'})
124
+
125
+ # arg1 one
126
+
127
+ # arg2 two
128
+
129
+ # arg3 three
130
+
131
+
132
+
133
+ func_kwargs(**{'arg1': 'one', 'arg2': 'two', 'arg3': 'three', 'arg4': 'four'})
134
+
135
+ # arg1 one
136
+
137
+ # arg2 two
138
+
139
+ # arg3 three
140
+
141
+ # arg4 four
142
+
143
+
144
+
145
+ func_kwargs(**{'arg1': 'one', 'arg3': 'three'})
146
+
147
+ # arg1 one
148
+
149
+ # arg3 three
150
+
151
+ ```

1

2018/06/14 04:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -11,6 +11,12 @@
11
11
  だったりcsvを出力したい変数は異なります。
12
12
 
13
13
  異なる変数で呼び出す際はどのように記載すればいいのでしょうか
14
+
15
+
16
+
17
+ 配列にして渡したいのですが具体的な指定方法がわからずテラテイルで質問しています。
18
+
19
+
14
20
 
15
21
 
16
22