回答編集履歴

9

修正

2020/05/13 00:08

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -34,15 +34,15 @@
34
34
 
35
35
  ```
36
36
 
37
- python test.py --q どうぶつの森
37
+ python test.py --q どうぶつの森 --maxresults 10
38
38
 
39
39
  ```
40
40
 
41
41
  とすることにより、
42
42
 
43
- args に自動的に「q」という属性が付与され、
43
+ `args` に自動的に「`q`」と「`maxresults`」という属性が付与され、
44
44
 
45
- args.qに、指定した文字列(ここでは"どうぶつの森")が代入されます。
45
+ `args.q`に、指定した文字列(ここでは"どうぶつの森")、および `args.maxresults`に指定した数値(ここでは 10)が代入されます。
46
46
 
47
47
 
48
48
 
@@ -58,7 +58,7 @@
58
58
 
59
59
 
60
60
 
61
- 1番目のqは、youtube.search().list関数で、検索対象文字列を指定するためのパラメータです。
61
+ 1番目のqは、`youtube.search().list`関数で、検索対象文字列を指定するためのパラメータです。
62
62
 
63
63
  2番目のqは、スクリプト実行時に指定した引数を格納するオブジェクト(args)の属性です。
64
64
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  ```
80
80
 
81
- とし、youtube_search関数内で、
81
+ とし、`youtube_search()`関数内で、
82
82
 
83
83
  ```
84
84
 
@@ -112,7 +112,7 @@
112
112
 
113
113
 
114
114
 
115
- ここは不正確で、q = optionsとしただけでなく、maxresults も下記のように変えましたよね?
115
+ ここは不正確で、`q = options`としただけでなく、`maxresults` も下記のように変えましたよね?
116
116
 
117
117
  ```
118
118
 
@@ -126,7 +126,7 @@
126
126
 
127
127
 
128
128
 
129
- ValueErrorが出た原因は、maxresultsに渡すデータは数値でなければいけないのに、'どうぶつの森'という文字列を渡したからです。
129
+ ValueErrorが出た原因は、maxresultsに渡すデータは数値でなければいけないのに、options すなわち「'どうぶつの森'という文字列を渡したからです。
130
130
 
131
131
 
132
132
 
@@ -154,7 +154,7 @@
154
154
 
155
155
 
156
156
 
157
- 仮に元の質問のコードを修正する場合は、youtube_search関数を以下のようにすれば動くと思います。
157
+ 仮に元の質問のコードを修正する場合は、youtube_search()関数の内部及び呼び出し元を以下のようにすれば動くと思います。
158
158
 
159
159
  ```
160
160
 

8

修正

2020/05/13 00:08

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  ---------------------------------------------------
50
50
 
51
- > 1.1、q = options.q,のコードでqが二回出てくる意味について
51
+ > 1、q = options.q,のコードでqが二回出てくる意味について
52
52
 
53
53
 
54
54
 
@@ -86,7 +86,47 @@
86
86
 
87
87
  ```
88
88
 
89
+
90
+
89
91
  とします。
92
+
93
+
94
+
95
+ ---------------------------------------------------
96
+
97
+
98
+
99
+ > (サンプルなので合っているはずなんですが)
100
+
101
+ 消して以下のようなコードで実行してみました。
102
+
103
+ q = options
104
+
105
+ ですが、今度は別のエラーが発生しました。
106
+
107
+ ValueError: invalid literal for int() with base 10: 'どうぶつの森'
108
+
109
+
110
+
111
+ (2020/5/13 2:00時点の質問文から引用)
112
+
113
+
114
+
115
+ ここは不正確で、q = optionsとしただけでなく、maxresults も下記のように変えましたよね?
116
+
117
+ ```
118
+
119
+ maxresults = options
120
+
121
+ ```
122
+
123
+ としていなければValueErrorは出ないはずです。仮に`maxResults = options.maxresults`のままならば
124
+
125
+ AttributeErrorが出るはずです。
126
+
127
+
128
+
129
+ ValueErrorが出た原因は、maxresultsに渡すデータは数値でなければいけないのに、'どうぶつの森'という文字列を渡したからです。
90
130
 
91
131
 
92
132
 
@@ -114,13 +154,13 @@
114
154
 
115
155
 
116
156
 
117
- 仮に元の質問のコードを修正する場合は、youtube_search関数内の1行を以下のようにすれば動くと思います。
157
+ 仮に元の質問のコードを修正する場合は、youtube_search関数を以下のようにすれば動くと思います。
118
158
 
119
159
  ```
120
160
 
121
161
  def youtube_search(options):
122
162
 
123
- youtube = build(YOUTUBE_API_SERVICE_NAME,YOUTUBE_API_VERSION,
163
+ youtube = build(YOUTUBE_API_SERVICE_NAME,YOUTUBE_API_VERSION,
124
164
 
125
165
  developerKey=DEVELOPER_KEY)
126
166
 
@@ -128,16 +168,18 @@
128
168
 
129
169
  search_response = youtube.search().list(
130
170
 
131
- q = options, # <---------------------修正
171
+ q = options, # 修正
132
172
 
133
173
  part = "id,snippet",
134
174
 
135
- maxResults = options.maxresults
175
+ maxResults = 10 # 修正
136
176
 
137
177
  ).execute()
138
178
 
179
+ return search_response # 追加
139
180
 
140
181
 
182
+
141
- youtube_search('どうぶつの森')
183
+ print(youtube_search('どうぶつの森')) # print~ に修正。
142
184
 
143
185
  ```

7

修正

2020/05/13 00:03

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  ```
32
32
 
33
- となっています。これは、スクリプト実行時に
33
+ となっています。これは、たとえばスクリプト実行時に
34
34
 
35
35
  ```
36
36
 
@@ -40,9 +40,9 @@
40
40
 
41
41
  とすることにより、
42
42
 
43
- 引数 args に自動的に「q」という属性が付与され、
43
+ args に自動的に「q」という属性が付与され、
44
44
 
45
- args.qに指定した文字列(ここでは"どうぶつの森")が代入されます。
45
+ args.qに指定した文字列(ここでは"どうぶつの森")が代入されます。
46
46
 
47
47
 
48
48
 
@@ -58,9 +58,9 @@
58
58
 
59
59
 
60
60
 
61
- 1番目のqは、youtube.search().list関数で指定するパラメータ(検索対象文字列)です。
61
+ 1番目のqは、youtube.search().list関数で、検索対象文字列を指定するためのパラメータです。
62
62
 
63
- 2番目のqは、スクリプト実行時引数を格納するオブジェクト(args)の属性です。
63
+ 2番目のqは、スクリプト実行時に指定した引数を格納するオブジェクト(args)の属性です。
64
64
 
65
65
 
66
66
 
@@ -114,7 +114,7 @@
114
114
 
115
115
 
116
116
 
117
- 仮に元の質問のコードを修正する場合は、youtube_search関数の1行を以下のようにすれば動くと思います。
117
+ 仮に元の質問のコードを修正する場合は、youtube_search関数の1行を以下のようにすれば動くと思います。
118
118
 
119
119
  ```
120
120
 

6

修正

2020/05/12 23:43

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -1,4 +1,4 @@
1
- [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)と比較して、質問のソースコードで欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
1
+ [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja#search_by_keyword)と比較して、質問のソースコードで欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
2
2
 
3
3
  ```
4
4
 

5

修正

2020/05/12 17:26

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -1,4 +1,4 @@
1
- [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)で欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
1
+ [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)と比較して、質問のソースコードで欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
2
2
 
3
3
  ```
4
4
 

4

修正

2020/05/12 17:25

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- このプログラムでは、[argparse](https://docs.python.org/ja/3/library/argparse.html)と呼ばれるモジュールについての知識が必要になります。
19
+ このスクリでは、[argparse](https://docs.python.org/ja/3/library/argparse.html)と呼ばれるモジュールについての知識が必要になります。
20
20
 
21
21
 
22
22
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  ```
32
32
 
33
- となっています。これは、プログラム実行時に
33
+ となっています。これは、スクリ実行時に
34
34
 
35
35
  ```
36
36
 
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- エラーを解析する際は思い込みを捨て、前後のスクリプトを丁寧に調べながら紐解いていくことが必要になります。
105
+ エラーを解析する際は思い込みを捨て、前後のコードを丁寧に調べながら紐解いていくことが必要になります。
106
106
 
107
107
 
108
108
 
@@ -128,7 +128,7 @@
128
128
 
129
129
  search_response = youtube.search().list(
130
130
 
131
- q = options, #<---------------------修正
131
+ q = options, # <---------------------修正
132
132
 
133
133
  part = "id,snippet",
134
134
 

3

追記

2020/05/12 17:08

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
 
60
60
 
61
- 1番目のqは、youtube_search() 関数使われカル変数です。
61
+ 1番目のqは、youtube.search().list関数で指定すパラメタ(検索対象文字列)です。
62
62
 
63
63
  2番目のqは、スクリプト実行時の引数を格納するオブジェクト(args)の属性です。
64
64
 
@@ -78,15 +78,15 @@
78
78
 
79
79
  ```
80
80
 
81
- とし、youtube_search関数内で
81
+ とし、youtube_search関数内で、
82
82
 
83
83
  ```
84
84
 
85
- search_word = options.queryword
85
+ q = options.queryword
86
86
 
87
87
  ```
88
88
 
89
- として、以降`q`の代わりに`search_word`という変数を使っていくことになります。
89
+ とします。
90
90
 
91
91
 
92
92
 
@@ -103,3 +103,41 @@
103
103
 
104
104
 
105
105
  エラーを解析する際は思い込みを捨て、前後のスクリプトを丁寧に調べながら紐解いていくことが必要になります。
106
+
107
+
108
+
109
+ -----------------------------------------------------
110
+
111
+
112
+
113
+ # 追記
114
+
115
+
116
+
117
+ 仮に元の質問のコードを修正する場合は、youtube_search関数の1行を以下のようにすれば動くと思います。
118
+
119
+ ```
120
+
121
+ def youtube_search(options):
122
+
123
+ youtube = build(YOUTUBE_API_SERVICE_NAME,YOUTUBE_API_VERSION,
124
+
125
+ developerKey=DEVELOPER_KEY)
126
+
127
+
128
+
129
+ search_response = youtube.search().list(
130
+
131
+ q = options, #<---------------------修正
132
+
133
+ part = "id,snippet",
134
+
135
+ maxResults = options.maxresults
136
+
137
+ ).execute()
138
+
139
+
140
+
141
+ youtube_search('どうぶつの森')
142
+
143
+ ```

2

修正

2020/05/12 17:06

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -1,4 +1,4 @@
1
- [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)を探しました上で欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
1
+ [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)で欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
2
2
 
3
3
  ```
4
4
 

1

修正

2020/05/12 16:58

投稿

kotori_a
kotori_a

スコア696

test CHANGED
@@ -1,4 +1,4 @@
1
- 元のサンプルコードで欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
1
+ [元のサンプルコード](https://developers.google.com/youtube/v3/code_samples/python?hl=ja)を探しました上で欠落している重要な部分は以下です。(説明に不要な部分は省略しています)
2
2
 
3
3
  ```
4
4
 
@@ -52,7 +52,7 @@
52
52
 
53
53
 
54
54
 
55
- 意味はなく、たまたま同じ変数が用いられており、わかりにくくなっているだけです。
55
+ 意味はなく、別々の変数が同じ名前で使われており、わかりにくくなっているだけです。
56
56
 
57
57
 
58
58
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  ```
80
80
 
81
- とし、search関数内では、
81
+ とし、youtube_search関数内では、
82
82
 
83
83
  ```
84
84