回答編集履歴

3

検索パラメタの"from"を削除

2020/11/16 14:21

投稿

akiruno-oneone
akiruno-oneone

スコア815

test CHANGED
@@ -59,3 +59,39 @@
59
59
  worksheet.update_cell(cell.row, cell.col +3, author.text)
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ 検索APIを確認してみました。
66
+
67
+ [https://iss.ndl.go.jp/information/wp-content/uploads/2020/03/ndlsearch_api_20200302_jp.pdf](https://iss.ndl.go.jp/information/wp-content/uploads/2020/03/ndlsearch_api_20200302_jp.pdf)
68
+
69
+ 年月日の指定で、月を指定すると、年だけのものにはヒットしないようです。
70
+
71
+ パラメタの'from'をコメントアウトして見て下さい。
72
+
73
+ ```python
74
+
75
+ # params['from'] = '1980-01-01'
76
+
77
+ ```
78
+
79
+ あと、以下のコードの意味はなんでしょうか。
80
+
81
+ 検索が成功したとき、len(items)がcntに等しくなってしまうため。
82
+
83
+ 無限ループになってしまいます。
84
+
85
+ 確認して下さい。
86
+
87
+ ```python
88
+
89
+ cnt = int(params['cnt'])
90
+
91
+ idx = int(params['idx'])
92
+
93
+ if len(items) < cnt:
94
+
95
+ break
96
+
97
+ ```

2

NameError: name 'publisher' is not definedについて

2020/11/16 14:21

投稿

akiruno-oneone
akiruno-oneone

スコア815

test CHANGED
@@ -35,3 +35,27 @@
35
35
  params['title'] = cell.value
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ 参照している変数publisherがforループの外です。
42
+
43
+ publisherの処理が、forループの内側のときははインデントをforと合わせる必要があります。
44
+
45
+ ```python
46
+
47
+ else:
48
+
49
+ list_map['publisher'].append('不明')
50
+
51
+ #インデントがあっていないので、forのインデントに合わせてください
52
+
53
+ #sheetに反映
54
+
55
+ worksheet.update_cell(cell.row, cell.col +1, publisher.text)
56
+
57
+ worksheet.update_cell(cell.row, cell.col +2, item.find('title').text)
58
+
59
+ worksheet.update_cell(cell.row, cell.col +3, author.text)
60
+
61
+ ```

1

cellの代入を変更しました。

2020/11/16 03:36

投稿

akiruno-oneone
akiruno-oneone

スコア815

test CHANGED
@@ -23,3 +23,15 @@
23
23
  r = s.get('http://iss.ndl.go.jp/api/opensearch', params=params)
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ cell_list = worksheet.range("A4:A5")だと、cell情報も入っているため、これを参照するときは
30
+
31
+ valueで値を参照してください。
32
+
33
+ ```python
34
+
35
+ params['title'] = cell.value
36
+
37
+ ```