回答編集履歴
9
修正
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
修正
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
---------------------------------------------------
|
50
50
|
|
51
|
-
>
|
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関数
|
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 =
|
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
修正
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
|
-
|
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は、スクリプト実行時
|
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
修正
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
修正
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
修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
このプ
|
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
追記
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
1番目のqは、youtube
|
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
|
-
|
85
|
+
q = options.queryword
|
86
86
|
|
87
87
|
```
|
88
88
|
|
89
|
-
とし
|
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
修正
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
修正
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
|
|