質問編集履歴

6

修正

2020/07/27 10:52

投稿

jelyco3
jelyco3

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,4 @@
1
- ### twitterにてある人物の発言に対してのAPIを利用してリプライを抽出し、
2
-
3
- 結果をMySQLに格納したいと思っています。
1
+ ###、MySQLに格納したいと思っています。
4
2
 
5
3
 
6
4
 
@@ -52,117 +50,15 @@
52
50
 
53
51
  ATS = '*****************************************'
54
52
 
55
- # ユーザー・ツイートID
53
+
56
54
 
57
- user_id = '@@*********'
55
+ #接続
58
56
 
59
- screen_name = '*********'
60
-
61
- # 検索時のパラメーター
62
-
63
- count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
64
-
65
- range = 100 # 検索回数の上限値(最大180/15分でリセット)
66
-
67
- # ツイート検索・リプライの抽出
68
-
69
- tweets = search_tweets(CK, CKS, AT, ATS, user_id, screen_name, count, range)
70
-
71
-
72
-
73
- url = "https://api.twitter.com/1.1/search/tweets.json"
74
-
75
-
76
-
77
-
78
-
79
- def search_tweets(CK, CKS, AT, ATS, user_id, screen_name, count, range):
80
-
81
- # 文字列設定
82
-
83
- user_id += ' exclude:retweets' # RTは除く
84
-
85
- user_id = urllib.parse.quote_plus(user_id)
86
-
87
- # リクエスト
88
-
89
- url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)
90
-
91
- auth = OAuth1(CK, CKS, AT, ATS)
92
-
93
- response = requests.get(url, auth=auth)
94
-
95
- data = response.json()
96
-
97
- if not 'statuses' in data:
98
-
99
- print(data)# {'errors': [{'message': 'Rate limit exceeded', 'code': 88}]}
100
-
101
- sys.exit() #
102
-
103
- data = data['statuses']
104
-
105
- #print(response)
106
-
107
- # 2回目以降のリクエスト
108
-
109
- cnt = 0
110
-
111
- reply_cnt = 0
112
-
113
- tweets = []
114
-
115
- while True:
116
-
117
- if len(data) == 0:
118
-
119
- break
120
-
121
- cnt += 1
122
-
123
- if cnt > range:
124
-
125
- break
126
-
127
- for tweet in data:
128
-
129
- if tweet['in_reply_to_screen_name'] == screen_name: # スクリーンネームに一致するものを抽出
130
-
131
- tweets.append(tweet['text']) # ツイート内容
132
-
133
- reply_cnt += 1
134
-
135
- maxid = int(tweet["id"]) - 1
136
-
137
- url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)+"&max_id="+str(maxid)
138
-
139
- response = requests.get(url, auth=auth)
140
-
141
- try:
142
-
143
- data = response.json()['statuses']
144
-
145
- except KeyError: # リクエスト回数が上限に達した場合のデータのエラー処理
146
-
147
- print('上限まで検索しました')
148
-
149
- break
150
-
151
- print('検索回数 :', cnt)
152
-
153
- print('リプライ数 :', reply_cnt)
154
-
155
- # print(tweets)
156
-
157
-
158
-
159
- #MYSQLに接続
160
-
161
- conn = MySQLdb.connect(host='localhost',user='root',passwd='abcdefg',db='tweetdata', charset='utf8mb4')
57
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='abcdefg',db='aaa',')
162
58
 
163
59
  c = conn.cursor()
164
60
 
165
- #ユーザ名,ツイートの内容をMysqlに入れていく
61
+
166
62
 
167
63
  c.execute("INSERT INTO tweet(user_id,content) VALUES(%s,%s)")
168
64
 
@@ -170,21 +66,13 @@
170
66
 
171
67
  conn.commit()
172
68
 
173
- conn.close()
174
-
175
- return tweets
176
69
 
177
70
 
178
71
 
179
72
 
180
73
 
181
- if __name__ == '__main__':
182
74
 
183
75
  main()
184
-
185
-
186
-
187
-
188
76
 
189
77
  ```
190
78
 

5

コードの修正

2020/07/27 10:52

投稿

jelyco3
jelyco3

スコア0

test CHANGED
@@ -1 +1 @@
1
- Pythonてツイッーのリプライ取得出来ない件について
1
+ MySQLデータが格納できない
test CHANGED
@@ -1,4 +1,6 @@
1
- ### twitterにてある人物の発言に対してのAPIを利用してリプライを抽出したい
1
+ ### twitterにてある人物の発言に対してのAPIを利用してリプライを抽出し
2
+
3
+ 結果をMySQLに格納したいと思っています。
2
4
 
3
5
 
4
6
 
@@ -6,29 +8,23 @@
6
8
 
7
9
 
8
10
 
9
- Pythonでコードを書いています。
11
+ ### 発生している問題・エラーメッセージ
10
12
 
11
- ある人物のツイートに対しての返信をAPIを利用して抽出を実装中ですが抽出できない状況です
13
+ raise ProgrammingError(str(m))
14
+
15
+ MySQLdb._exceptions.ProgrammingError: not all arguments converted during bytes formatting
12
16
 
13
17
 
14
18
 
19
+ 上記のように表示され、抽出結果をMySQLに格納できません。
15
20
 
16
-
17
- ### 発生ている問題・エラーメッセージ
21
+ データをMySQLに格納するためにはどうすればよろでしょうか
18
22
 
19
23
 
20
24
 
21
25
 
22
26
 
23
27
 
24
-
25
- <Response [200]>
26
-
27
- 上限まで検索しました
28
-
29
- 検索回数 : 78
30
-
31
- リプライ数 : 0
32
28
 
33
29
 
34
30
 
@@ -40,15 +36,7 @@
40
36
 
41
37
 
42
38
 
43
- import urllib
44
39
 
45
- from requests_oauthlib import OAuth1Session, OAuth1
46
-
47
- import requests
48
-
49
- import sys
50
-
51
- import MySQLdb
52
40
 
53
41
 
54
42
 
@@ -68,37 +56,17 @@
68
56
 
69
57
  user_id = '@@*********'
70
58
 
71
- #tweet_id = 'コメントアウトしました' # str型で指定
59
+ screen_name = '*********'
72
60
 
73
61
  # 検索時のパラメーター
74
62
 
75
- count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
63
+ count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
76
64
 
77
65
  range = 100 # 検索回数の上限値(最大180/15分でリセット)
78
66
 
79
67
  # ツイート検索・リプライの抽出
80
68
 
81
- tweets = search_tweets(CK, CKS, AT, ATS, user_id, count, range)
69
+ tweets = search_tweets(CK, CKS, AT, ATS, user_id, screen_name, count, range)
82
-
83
- #MYSQLに接続
84
-
85
- conn = MySQLdb.connect(host='localhost',user='root',passwd='*******',db='*****', charset='utf8mb4')
86
-
87
- c = conn.cursor()
88
-
89
- #テーブルの作成(2回目以降の実行では不要)すでに作成しているのでコメントアウト
90
-
91
- # c.execute('''
92
-
93
- # CREATE TABLE tweet(
94
-
95
- # user_id bigint,
96
-
97
- # content text
98
-
99
- # )
100
-
101
- #''')
102
70
 
103
71
 
104
72
 
@@ -108,15 +76,7 @@
108
76
 
109
77
 
110
78
 
111
- # 抽出結果を表示
112
-
113
- # print(tweets)
114
-
115
-
116
-
117
-
118
-
119
- def search_tweets(CK, CKS, AT, ATS, user_id, count, range):
79
+ def search_tweets(CK, CKS, AT, ATS, user_id, screen_name, count, range):
120
80
 
121
81
  # 文字列設定
122
82
 
@@ -138,7 +98,7 @@
138
98
 
139
99
  print(data)# {'errors': [{'message': 'Rate limit exceeded', 'code': 88}]}
140
100
 
141
- sys.exit() # あるいはちゃんとSleepする
101
+ sys.exit() #
142
102
 
143
103
  data = data['statuses']
144
104
 
@@ -166,7 +126,7 @@
166
126
 
167
127
  for tweet in data:
168
128
 
169
- if tweet['in_reply_to_screen_name'] == user_id: # IDに一致するものを抽出
129
+ if tweet['in_reply_to_screen_name'] == screen_name: # スクリンネに一致するものを抽出
170
130
 
171
131
  tweets.append(tweet['text']) # ツイート内容
172
132
 
@@ -192,21 +152,27 @@
192
152
 
193
153
  print('リプライ数 :', reply_cnt)
194
154
 
155
+ # print(tweets)
156
+
157
+
158
+
195
159
  #MYSQLに接続
196
160
 
197
- conn = MySQLdb.connect(host='localhost',user='root',passwd='*******',db='tweetdata', charset='utf8mb4')
161
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='abcdefg',db='tweetdata', charset='utf8mb4')
198
162
 
199
163
  c = conn.cursor()
200
164
 
165
+ #ユーザ名,ツイートの内容をMysqlに入れていく
166
+
201
- c.execute('INSERT INTO tweet(user_id,content) VALUES(%s,%s)',(tweet['user_id'],content['content']))
167
+ c.execute("INSERT INTO tweet(user_id,content) VALUES(%s,%s)")
168
+
169
+ cursor.close()
202
170
 
203
171
  conn.commit()
204
172
 
173
+ conn.close()
174
+
205
175
  return tweets
206
-
207
- #ユーザ名,ツイートの内容をMysqlに入れていく
208
-
209
-
210
176
 
211
177
 
212
178
 

4

db

2020/07/27 08:37

投稿

jelyco3
jelyco3

スコア0

test CHANGED
File without changes
test CHANGED
@@ -194,7 +194,7 @@
194
194
 
195
195
  #MYSQLに接続
196
196
 
197
- conn = MySQLdb.connect(host='localhost',user='root',passwd='kanamar89',db='tweetdata', charset='utf8mb4')
197
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='*******',db='tweetdata', charset='utf8mb4')
198
198
 
199
199
  c = conn.cursor()
200
200
 

3

rerurn tweet の位置を修正

2020/07/27 06:54

投稿

jelyco3
jelyco3

スコア0

test CHANGED
File without changes
test CHANGED
@@ -132,9 +132,17 @@
132
132
 
133
133
  response = requests.get(url, auth=auth)
134
134
 
135
+ data = response.json()
136
+
137
+ if not 'statuses' in data:
138
+
139
+ print(data)# {'errors': [{'message': 'Rate limit exceeded', 'code': 88}]}
140
+
141
+ sys.exit() # あるいはちゃんとSleepする
142
+
135
- data = response.json()['statuses']
143
+ data = data['statuses']
136
-
144
+
137
- print(response)
145
+ #print(response)
138
146
 
139
147
  # 2回目以降のリクエスト
140
148
 
@@ -158,7 +166,7 @@
158
166
 
159
167
  for tweet in data:
160
168
 
161
- if tweet['in_reply_to_status_id_str'] == user_id: # ユーザーIDに一致するものを抽出
169
+ if tweet['in_reply_to_screen_name'] == user_id: # ユーザーIDに一致するものを抽出
162
170
 
163
171
  tweets.append(tweet['text']) # ツイート内容
164
172
 
@@ -184,13 +192,21 @@
184
192
 
185
193
  print('リプライ数 :', reply_cnt)
186
194
 
195
+ #MYSQLに接続
196
+
197
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='kanamar89',db='tweetdata', charset='utf8mb4')
198
+
199
+ c = conn.cursor()
200
+
201
+ c.execute('INSERT INTO tweet(user_id,content) VALUES(%s,%s)',(tweet['user_id'],content['content']))
202
+
203
+ conn.commit()
204
+
187
205
  return tweets
188
206
 
189
207
  #ユーザ名,ツイートの内容をMysqlに入れていく
190
208
 
191
- c.execute('INSERT INTO tweet(user_id,content) VALUES(%s,%s)',(tweet['user_id'],content['content']))
209
+
192
-
193
- conn.commit()
194
210
 
195
211
 
196
212
 
@@ -202,6 +218,8 @@
202
218
 
203
219
 
204
220
 
221
+
222
+
205
223
  ```
206
224
 
207
225
 

2

コードの修正

2020/07/27 05:16

投稿

jelyco3
jelyco3

スコア0

test CHANGED
File without changes
test CHANGED
@@ -8,226 +8,198 @@
8
8
 
9
9
  Pythonでコードを書いています。
10
10
 
11
- ある人物のツイートに対しての返信をAPIを利用して抽出を実装中に以下のエラーメッセージ発生しました。
11
+ ある人物のツイートに対しての返信をAPIを利用して抽出を実装中です抽出できない状況です
12
-
13
- ちなみに抽出結果はMYSQLに格納したいと考えております。
12
+
13
+
14
14
 
15
15
 
16
16
 
17
17
  ### 発生している問題・エラーメッセージ
18
18
 
19
- リプライが抽出できず、下記のエラーが表示されております。
20
-
21
- SQLの文法エラーと見受けられるのですが、どこの部分を訂正すればいいかわからない状況です。
22
-
23
-
24
-
25
- 恐れ入りますがご教授お願いできますでしょうか 
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
- エラーメッセージ
34
-
35
- `検索回数 : 79
36
-
37
- リプライ数 : 84
38
-
39
- Traceback (most recent call last):
40
-
41
- File "twiiter.py", line 81, in <module>
19
+
20
+
21
+
22
+
23
+
24
+
25
+ <Response [200]>
26
+
27
+ 上限まで検索しました
28
+
29
+ 検索回数 : 78
30
+
31
+ リプライ数 : 0
32
+
33
+
34
+
35
+ ### 該当のソースコード
36
+
37
+
38
+
39
+ ```Python
40
+
41
+
42
+
43
+ import urllib
44
+
45
+ from requests_oauthlib import OAuth1Session, OAuth1
46
+
47
+ import requests
48
+
49
+ import sys
50
+
51
+ import MySQLdb
52
+
53
+
54
+
55
+
56
+
57
+ def main():
58
+
59
+ CK = '*****************************************'
60
+
61
+ CKS = '*****************************************'
62
+
63
+ AT = '*****************************************'
64
+
65
+ ATS = '*****************************************'
66
+
67
+ # ユーザー・ツイートID
68
+
69
+ user_id = '@@*********'
70
+
71
+ #tweet_id = 'コメントアウトしました' # str型で指定
72
+
73
+ # 検索時のパラメーター
74
+
75
+ count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
76
+
77
+ range = 100 # 検索回数の上限値(最大180/15分でリセット)
78
+
79
+ # ツイート検索・リプライの抽出
80
+
81
+ tweets = search_tweets(CK, CKS, AT, ATS, user_id, count, range)
82
+
83
+ #MYSQLに接続
84
+
85
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='*******',db='*****', charset='utf8mb4')
86
+
87
+ c = conn.cursor()
88
+
89
+ #テーブルの作成(2回目以降の実行では不要)すでに作成しているのでコメントアウト
90
+
91
+ # c.execute('''
92
+
93
+ # CREATE TABLE tweet(
94
+
95
+ # user_id bigint,
96
+
97
+ # content text
98
+
99
+ # )
100
+
101
+ #''')
102
+
103
+
104
+
105
+ url = "https://api.twitter.com/1.1/search/tweets.json"
106
+
107
+
108
+
109
+
110
+
111
+ # 抽出結果を表示
112
+
113
+ # print(tweets)
114
+
115
+
116
+
117
+
118
+
119
+ def search_tweets(CK, CKS, AT, ATS, user_id, count, range):
120
+
121
+ # 文字列設定
122
+
123
+ user_id += ' exclude:retweets' # RTは除く
124
+
125
+ user_id = urllib.parse.quote_plus(user_id)
126
+
127
+ # リクエスト
128
+
129
+ url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)
130
+
131
+ auth = OAuth1(CK, CKS, AT, ATS)
132
+
133
+ response = requests.get(url, auth=auth)
134
+
135
+ data = response.json()['statuses']
136
+
137
+ print(response)
138
+
139
+ # 2回目以降のリクエスト
140
+
141
+ cnt = 0
142
+
143
+ reply_cnt = 0
144
+
145
+ tweets = []
146
+
147
+ while True:
148
+
149
+ if len(data) == 0:
150
+
151
+ break
152
+
153
+ cnt += 1
154
+
155
+ if cnt > range:
156
+
157
+ break
158
+
159
+ for tweet in data:
160
+
161
+ if tweet['in_reply_to_status_id_str'] == user_id: # ユーザーIDに一致するものを抽出
162
+
163
+ tweets.append(tweet['text']) # ツイート内容
164
+
165
+ reply_cnt += 1
166
+
167
+ maxid = int(tweet["id"]) - 1
168
+
169
+ url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)+"&max_id="+str(maxid)
170
+
171
+ response = requests.get(url, auth=auth)
172
+
173
+ try:
174
+
175
+ data = response.json()['statuses']
176
+
177
+ except KeyError: # リクエスト回数が上限に達した場合のデータのエラー処理
178
+
179
+ print('上限まで検索しました')
180
+
181
+ break
182
+
183
+ print('検索回数 :', cnt)
184
+
185
+ print('リプライ数 :', reply_cnt)
186
+
187
+ return tweets
188
+
189
+ #ユーザ名,ツイートの内容をMysqlに入れていく
190
+
191
+ c.execute('INSERT INTO tweet(user_id,content) VALUES(%s,%s)',(tweet['user_id'],content['content']))
192
+
193
+ conn.commit()
194
+
195
+
196
+
197
+
198
+
199
+ if __name__ == '__main__':
42
200
 
43
201
  main()
44
202
 
45
- File "twiiter.py", line 26, in main
46
-
47
- c.execute('''
48
-
49
- File "/Users/.pyenv/versions/3.8.3/lib/python3.8/site-packages/MySQLdb/cursors.py", line 206, in execute
50
-
51
- res = self._query(query)
52
-
53
- File "/Users/.pyenv/versions/3.8.3/lib/python3.8/site-packages/MySQLdb/cursors.py", line 319, in _query
54
-
55
- db.query(q)
56
-
57
- File "/Users/.pyenv/versions/3.8.3/lib/python3.8/site-packages/MySQLdb/connections.py", line 259, in query
58
-
59
- _mysql.connection.query(self, query)
60
-
61
- MySQLdb._exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',\n content text\n )' at line 2")
62
-
63
-
64
-
65
- ### 該当のソースコード
66
-
67
-
68
-
69
- ```Python
70
-
71
- import urllib
72
-
73
- from requests_oauthlib import OAuth1Session, OAuth1
74
-
75
- import requests
76
-
77
- import sys
78
-
79
- import MySQLdb
80
-
81
-
82
-
83
-
84
-
85
- def main():
86
-
87
- CK = '*****************************************'
88
-
89
- CKS = '*****************************************'
90
-
91
- AT = '*****************************************'
92
-
93
- ATS = '*****************************************'
94
-
95
- # ユーザー・ツイートID
96
-
97
- user_id = '@@********'
98
-
99
- tweet_id = '1234456789012' # str型で指定
100
-
101
- # 検索時のパラメーター
102
-
103
- count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
104
-
105
- range = 100 # 検索回数の上限値(最大180/15分でリセット)
106
-
107
- # ツイート検索・リプライの抽出
108
-
109
- tweets = search_tweets(CK, CKS, AT, ATS, user_id, tweet_id, count, range)
110
-
111
- #MYSQLに接続
112
-
113
- conn = MySQLdb.connect(host='localhost',user='root',passwd='*****',db='tweetdata', charset='utf8mb4')
114
-
115
- c = conn.cursor()
116
-
117
- #テーブルの作成(2回目以降の実行では不要)
118
-
119
- c.execute('''
120
-
121
- CREATE TABLE tweet(
122
-
123
- user_id,
124
-
125
- content text
126
-
127
- )
128
-
129
- ''')
130
-
131
-
132
-
133
- url = "https://api.twitter.com/1.1/search/tweets.json"
134
-
135
-
136
-
137
-
138
-
139
- # 抽出結果を表示
140
-
141
- # print(tweets)
142
-
143
-
144
-
145
-
146
-
147
- def search_tweets(CK, CKS, AT, ATS, user_id, tweet_id, count, range):
148
-
149
- # 文字列設定
150
-
151
- user_id += ' exclude:retweets' # RTは除く
152
-
153
- user_id = urllib.parse.quote_plus(user_id)
154
-
155
- # リクエスト
156
-
157
- url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)
158
-
159
- auth = OAuth1(CK, CKS, AT, ATS)
160
-
161
- response = requests.get(url, auth=auth)
162
-
163
- data = response.json()['statuses']
164
-
165
- print(response)
166
-
167
- # 2回目以降のリクエスト
168
-
169
- cnt = 0
170
-
171
- reply_cnt = 0
172
-
173
- tweets = []
174
-
175
- while True:
176
-
177
- if len(data) == 0:
178
-
179
- break
180
-
181
- cnt += 1
182
-
183
- if cnt > range:
184
-
185
- break
186
-
187
- for tweet in data:
188
-
189
- if tweet['in_reply_to_status_id_str'] == tweet_id: # ツイートIDに一致するものを抽出
190
-
191
- tweets.append(tweet['text']) # ツイート内容
192
-
193
- reply_cnt += 1
194
-
195
- maxid = int(tweet["id"]) - 1
196
-
197
- url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)+"&max_id="+str(maxid)
198
-
199
- response = requests.get(url, auth=auth)
200
-
201
- try:
202
-
203
- data = response.json()['statuses']
204
-
205
- except KeyError: # リクエスト回数が上限に達した場合のデータのエラー処理
206
-
207
- print('上限まで検索しました')
208
-
209
- break
210
-
211
- print('検索回数 :', cnt)
212
-
213
- print('リプライ数 :', reply_cnt)
214
-
215
- return tweets
216
-
217
- #ユーザ名,ツイートの内容をMysqlに入れていく
218
-
219
- c.execute('INSERT INTO tweet(user_id,content) VALUES(%s,%s)',(tweet['user_id'],content['content']))
220
-
221
- conn.commit()
222
-
223
-
224
-
225
-
226
-
227
- if __name__ == '__main__':
228
-
229
- main()
230
-
231
203
 
232
204
 
233
205
  ```

1

main関数の前半部の更新

2020/07/27 02:23

投稿

jelyco3
jelyco3

スコア0

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,52 @@
68
68
 
69
69
  ```Python
70
70
 
71
+ import urllib
72
+
73
+ from requests_oauthlib import OAuth1Session, OAuth1
74
+
75
+ import requests
76
+
77
+ import sys
78
+
79
+ import MySQLdb
80
+
81
+
82
+
83
+
84
+
85
+ def main():
86
+
87
+ CK = '*****************************************'
88
+
89
+ CKS = '*****************************************'
90
+
91
+ AT = '*****************************************'
92
+
93
+ ATS = '*****************************************'
94
+
95
+ # ユーザー・ツイートID
96
+
97
+ user_id = '@@********'
98
+
99
+ tweet_id = '1234456789012' # str型で指定
100
+
101
+ # 検索時のパラメーター
102
+
103
+ count = 100 # 一回あたりの検索数(最大100/デフォルトは15)
104
+
105
+ range = 100 # 検索回数の上限値(最大180/15分でリセット)
106
+
107
+ # ツイート検索・リプライの抽出
108
+
109
+ tweets = search_tweets(CK, CKS, AT, ATS, user_id, tweet_id, count, range)
110
+
111
+ #MYSQLに接続
112
+
113
+ conn = MySQLdb.connect(host='localhost',user='root',passwd='*****',db='tweetdata', charset='utf8mb4')
114
+
115
+ c = conn.cursor()
116
+
71
117
  #テーブルの作成(2回目以降の実行では不要)
72
118
 
73
119
  c.execute('''