発生している問題・エラーメッセージ
Pythonでeval()関数を使うと、次のようなエラーが発生します。
File "<string>", line 1 ^ SyntaxError: invalid character in identifier
該当のソースコード
Python
1import tweepy 2import csv 3import pprint 4import pandas as pd 5import os 6import time 7import datetime 8import re 9 10#ここはお決まりです。 11consumer_key = '' 12consumer_secret = '' 13access_token = '' 14access_token_secret = '' 15auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 16auth.set_access_token(access_token, access_token_secret) 17api = tweepy.API(auth) 18 19#ツイートを保存するGoogle Driveのディレクトリです。事前に作っておきましょう。 20drive_path = '/content/drive/MyDrive/tweet' 21#学習用のデータセットで必要なツイート数を指定しています。 22max_tweets = 10000 23 24def getMtTweet(): 25 #取得したツイートを格納するための配列 26 tweets = [] 27 num = 0 28 i = 1 29 print('page ' + str(i)) 30 #自分のタイムラインを取得するためuser_timelineを使用します。1リクエストで取得できるツイートの上限数は100です。 31 tweet_data = api.home_timeline(count=100) 32 if(len(tweet_data) > 0): 33 for tweet in tweet_data: 34 #データセット用に各ツイートの最後に<|endoftext|>をつけて整形します。 35 36 tweets.append([tweet.text+"<|endoftext|>"]) 37 num += 1 38 i += 1 39 next_max_id = tweet_data[-1].id 40 while True: 41 print('page ' + str(i)) 42 tweet_data = api.user_timeline(count=100, max_id=next_max_id-1) 43 if(len(tweet_data) > 0): 44 next_max_id = tweet_data[-1].id 45 for tweet in tweet_data: 46 tweets.append([tweet.text+"<|endoftext|>"]) 47 num += 1 48 if(num >= max_tweets): 49 break 50 i += 1 51 #Twitter API制限の上限でエラーにならないようにディレイをかけています。 52 time.sleep((15*60)/180) 53 else: 54 break 55 saveTweets(tweets) 56 else: 57 print('zero tweet') 58 59def saveTweets(tweets): 60 ut = time.time() 61 tweets=', '.join(map(str, tweets))#list型をstr型に変換 62 tweets=re.sub(r'https?://[\w/:%#$&?()~.=+\-…]+', "", tweets) 63 tweets=re.sub('RT', "", tweets) 64 tweets=re.sub('お気に入り', "", tweets) 65 tweets=re.sub('まとめ', "", tweets) 66 tweets=re.sub(r'[!-~]', "", tweets)#半角記号,数字,英字 67 tweets=re.sub(r'[︰-@]', "", tweets)#全角記号 68 tweets=re.sub('\n', " ", tweets)#改行文字 69 tweets=eval(tweets)#str型からlist型に変換 70 71 #テキストファイルで保存 72 file_path = drive_path+'myTweets_' + str(ut) + '.txt' 73 file = open(file_path, 'w') 74 w = csv.writer(file) 75 w.writerows(tweets) 76 file.close() 77 78 with open(file_path) as f: 79 print(f.read()) 80 81getMtTweet()
試したこと
ここのeval()関数をコメントアウトしたりしてみました。
eval関数をコメントアウトしたらエラーが消えたのでここのeval関数が原因なのではないかと思っています。
また、astメゾットを使ってみても同様のエラーが発生しました。
Python
1 tweets=', '.join(map(str, tweets))#list型をstr型に変換 2 tweets=re.sub(r'https?://[\w/:%#$&?()~.=+\-…]+', "", tweets) 3 tweets=re.sub('RT', "", tweets) 4 tweets=re.sub('お気に入り', "", tweets) 5 tweets=re.sub('まとめ', "", tweets) 6 tweets=re.sub(r'[!-~]', "", tweets)#半角記号,数字,英字 7 tweets=re.sub(r'[︰-@]', "", tweets)#全角記号 8 tweets=re.sub('\n', " ", tweets)#改行文字 9 tweets=eval(tweets)#str型からlist型へ変換。
どなたか解決策がわかる方は回答お願いします。
eval(tweets)する直前のtweetsをprintした結果を提示ください。
長すぎる場合はエラーが再現する最小限の文字列tweetsを提示ください。
File "<string>", line 1
銀座和光時計台???? 奈良から富士山が見えるって知ってた おはようございます✌️✌️日曜日 言葉が出ない……。 俺もロボットの声作ってみようかな。みさいるさんの動画みて興味湧いてきた。 コロナはやはりシンだった いやナギ節は終わらないで 街行く人のほぼ全員がマスクつけてる。そしてウレタンは以前より減って不織布が増えた。世界トップレベルのワクチン接種率伸び率と、多分世界一のマスク着用遵守率が今のナギ節をもたらしてるんやろなって。 ナギ節やめろ かわいいソーラー充電 秋月電子でお買い物 と、同じプロセサで動作する 、 の方は付属品もてんこ盛りで円とか値段がバグってるw 機器がビシバシ繋げられてアナログモーターコントロール… 電動台車型のメリットは様々な市販車椅子に対応できる汎用性。なので、友人同士でシェアリングしたり、荷物搬送にも活用できる車椅子に乗らない友達とも一緒に遊べる様に、「電車で」操縦コンで運転する電車アトラクションにもできるワクワ… すごパッと見砂浜が波打ってる おはようございます☺️ ジブリのワンシーンのように。 ひらがなカタカナ半角カナ濁音半濁音扱うコード書いて日本語とかいう言語クッソだるいなとなった そんなもんロビー活動するなよ。そして厚労省は相変わらず人の居るところで噴霧非推奨。活動実らず。 裏から見れる滝、岩井滝。 素敵´ω`???? ここ最近、ちょっとしたケチが積もり積もって人々の生活が貧しくなっていく感がすごい ブレ゙ーン゙ズダイ゙ル゙に゙ぎょゔぜい゙だぐお゙ん゙ぎの゙ゔづげだ アボカドは絶滅するはずだった南北両大陸でマンモスや巨大なバクやナマケモノのような大型哺乳類が絶滅した時に種子散布者がいなくなった。人間が食用栽培を始めるまでに絶滅の道を辿っていた可能性あるという話 にゃんこ大戦争 も゙に゙ 【 】高音質無料ダウンロード動画の等に是非ご利用ください。 トラック提供 ☟のご利用について… ただし、公式版 スタックチャン のファームは使えないので、制御ソフトは自分で作る必要があります???? ワクチン打った方の腕ホント痛い。これ明日学校行けるかな。。。 オールしたから今から仕事やけど眠すぎる…歩きながら寝れる ありがとうございます???? 最初人にピント合わせてたんですけどつまらない感じだったので、信号機に合わせて撮ってみました????気づいていただけて嬉しいです、ありがとうございます????✨ おはようございます☀️ありがとうございます???? あれー でをビルドしようとすると フォントの の生成中に応答が無くなってしまう… ミク 新宿の裏路地がたまらなく好き まだピンクの スタックチャン はいなかったはず???? 買った 天地創造。 家事だけで半日終わった????母の有難みがよく分かる…もっと親孝行しよう…撮影で毎週夜中から県外に行かないことが一番の親孝行な気はする← お願い????「選挙カー廃止のお願い」乳児期、やっとの思いで寝かしつけたのに、スピーカーからの爆音にマイナスからのスタート。現在、聴覚過敏のある人・双子自閉症の我が子。近づくスピーカー音におびえ、イヤーマフをつけ、毛布をかぶっ… 朝から超望遠で散歩 おはようございます◞౪◟熱下がった…かな写真 カメラ 写真好きな人と繋がりたい 情景 カメラ好きな人と繋がりたい ふむふむ 寝るのも忘れて進撃見てたけど、細谷さんいるの嬉しくて発狂やしジャ...
^
SyntaxError: invalid character in identifier
これでよろしいでしょうか?
音
半
濁
音
扱
う
コ
ー
ド
書
い
て
日
本
語
と
か
い
う
言
語
ク
ッ
ソ
だ
る
い
な
と
な
っ
た
そ
ん
な
も
ん
ロ
ビ
ー
活
動
す
る
な
よ
。
そ
し
て
厚
労
省
は
相
変
わ
ら
ず
人
の
居
る
と
こ
ろ
で
噴
霧
非
推
奨
。
活
動
実
ら
ず
。
eval(tweets)をする直前のtweetsはこのような感じです。
長すぎるので最初の方だけです。
ふつうの文字列ですね。これだとevalやastではエラーになります。
この文字列をどのようなルールでリストにしたいのでしょうか?
(空白文字「 」区切毎に別文字列のリストにしたい、など)
なるほど。そうなんですね!!
空白文字で区切りたいです。
回答1件
あなたの回答
tips
プレビュー