質問編集履歴

3

正規表現をしようとしたらエラーがでる→正規表現が上手く動かない(エラーなし)

2021/07/25 14:27

投稿

saiy
saiy

スコア2

test CHANGED
@@ -1 +1 @@
1
- 正規表現でurlを除こうとしているがexpected string or bytes-like objectとエラーが出てし
1
+ 正規表現でurlを除こうとしているがくいかない
test CHANGED
File without changes

2

正規表現をしようとしたらエラーがでる→正規表現が上手く動かない(エラーなし)

2021/07/25 14:27

投稿

saiy
saiy

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,55 +6,23 @@
6
6
 
7
7
  取得したツイートに付くurlが邪魔なので正規表現でurlを除く部分を書きました。
8
8
 
9
- (filtered_tweet_listやre.sub等の部分)
10
9
 
11
- しかし毎度expected string or bytes-like objectとエラーメッセージが出てしまいます。
12
10
 
11
+ 現在エラーメッセージは出ていないのですが、#問題箇所 部分の正規表現がうまくいっていないのか、csvからurlが除去できていません。
12
+
13
+ 初心者なためかなり問題があると思うのですが、よろしくお願いいたします。
14
+
15
+
16
+
17
+ ”しかし毎度expected string or bytes-like objectとエラーメッセージが出てしまいます。
18
+
13
- print(type('tweet_list'))で型の確認をしたのですがstr型で問題ないように思いました
19
+ print(type(tweet_list))で型の確認をしたのですがstr型で問題ないように思いました
20
+
21
+ この問題はtweet_listが特殊な型だったのでjson.dumpsでエンコードして解決しました。
14
22
 
15
23
 
16
24
 
17
25
 
18
-
19
- ### 発生している問題・エラーメッセージ
20
-
21
-
22
-
23
- ```
24
-
25
- TypeError Traceback (most recent call last)
26
-
27
- <ipython-input-25-7548a2d62ed7> in <module>()
28
-
29
- 27
30
-
31
- 28 for tweet in tweet_list:
32
-
33
- ---> 29 re.sub("https?://", "", tweet_list)
34
-
35
- 30
36
-
37
- 31 #csv出力
38
-
39
-
40
-
41
- /usr/lib/python3.7/re.py in sub(pattern, repl, string, count, flags)
42
-
43
- 192 a callable, it's passed the Match object and must return
44
-
45
- 193 a replacement string to be used.""
46
-
47
- ---> 194 return _compile(pattern, flags).sub(repl, string, count)
48
-
49
- 195
50
-
51
- 196 def subn(pattern, repl, string, count=0, flags=0):
52
-
53
-
54
-
55
- TypeError: expected string or bytes-like object
56
-
57
- ```
58
26
 
59
27
 
60
28
 
@@ -67,6 +35,8 @@
67
35
  import tweepy
68
36
 
69
37
  import csv
38
+
39
+ import json
70
40
 
71
41
  import re
72
42
 
@@ -102,15 +72,15 @@
102
72
 
103
73
  tweet_list.append([tweet.text.replace('\n','')])
104
74
 
105
- #filtered_tweet_list = [tweet for tweet in tweet_list if not re.findall(r"http\S+", "", tweet)]
106
-
107
75
 
108
76
 
109
77
  #問題箇所
110
78
 
111
- for tweet in tweet_list:
79
+ enc = json.dumps(tweet_list,ensure_ascii=False)
112
80
 
81
+ for tweet in enc:
82
+
113
- re.sub("https?://", "", tweet_list)
83
+ re.sub("https?://", "", enc)
114
84
 
115
85
 
116
86
 

1

誤字

2021/07/25 13:21

投稿

saiy
saiy

スコア2

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  しかし毎度expected string or bytes-like objectとエラーメッセージが出てしまいます。
12
12
 
13
- print(type(tweet))で型の確認をしたのですがstr型で問題ないように思いました
13
+ print(type('tweet_list'))で型の確認をしたのですがstr型で問題ないように思いました
14
14
 
15
15
 
16
16