質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1499閲覧

Pythonでeval()関数を使うと、invalid character in identifierというエラーが発生する。

robotKR

総合スコア32

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/24 02:28

発生している問題・エラーメッセージ

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型へ変換。

どなたか解決策がわかる方は回答お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2021/10/24 02:53

eval(tweets)する直前のtweetsをprintした結果を提示ください。 長すぎる場合はエラーが再現する最小限の文字列tweetsを提示ください。
robotKR

2021/10/24 02:59 編集

File "<string>", line 1 銀座和光時計台???? 奈良から富士山が見えるって知ってた おはようございます✌️✌️日曜日 言葉が出ない……。 俺もロボットの声作ってみようかな。みさいるさんの動画みて興味湧いてきた。 コロナはやはりシンだった いやナギ節は終わらないで 街行く人のほぼ全員がマスクつけてる。そしてウレタンは以前より減って不織布が増えた。世界トップレベルのワクチン接種率伸び率と、多分世界一のマスク着用遵守率が今のナギ節をもたらしてるんやろなって。 ナギ節やめろ かわいいソーラー充電 秋月電子でお買い物 と、同じプロセサで動作する 、 の方は付属品もてんこ盛りで円とか値段がバグってるw 機器がビシバシ繋げられてアナログモーターコントロール… 電動台車型のメリットは様々な市販車椅子に対応できる汎用性。なので、友人同士でシェアリングしたり、荷物搬送にも活用できる車椅子に乗らない友達とも一緒に遊べる様に、「電車で」操縦コンで運転する電車アトラクションにもできるワクワ… すごパッと見砂浜が波打ってる おはようございます☺️ ジブリのワンシーンのように。 ひらがなカタカナ半角カナ濁音半濁音扱うコード書いて日本語とかいう言語クッソだるいなとなった そんなもんロビー活動するなよ。そして厚労省は相変わらず人の居るところで噴霧非推奨。活動実らず。 裏から見れる滝、岩井滝。 素敵´ω`???? ここ最近、ちょっとしたケチが積もり積もって人々の生活が貧しくなっていく感がすごい ブレ゙ーン゙ズダイ゙ル゙に゙ぎょゔぜい゙だぐお゙ん゙ぎの゙ゔづげだ アボカドは絶滅するはずだった南北両大陸でマンモスや巨大なバクやナマケモノのような大型哺乳類が絶滅した時に種子散布者がいなくなった。人間が食用栽培を始めるまでに絶滅の道を辿っていた可能性あるという話 にゃんこ大戦争 も゙に゙ 【 】高音質無料ダウンロード動画の等に是非ご利用ください。 トラック提供 ☟のご利用について… ただし、公式版 スタックチャン のファームは使えないので、制御ソフトは自分で作る必要があります???? ワクチン打った方の腕ホント痛い。これ明日学校行けるかな。。。 オールしたから今から仕事やけど眠すぎる…歩きながら寝れる ありがとうございます???? 最初人にピント合わせてたんですけどつまらない感じだったので、信号機に合わせて撮ってみました????気づいていただけて嬉しいです、ありがとうございます????✨ おはようございます☀️ありがとうございます???? あれー でをビルドしようとすると フォントの の生成中に応答が無くなってしまう… ミク 新宿の裏路地がたまらなく好き まだピンクの スタックチャン はいなかったはず???? 買った 天地創造。 家事だけで半日終わった????母の有難みがよく分かる…もっと親孝行しよう…撮影で毎週夜中から県外に行かないことが一番の親孝行な気はする← お願い????「選挙カー廃止のお願い」乳児期、やっとの思いで寝かしつけたのに、スピーカーからの爆音にマイナスからのスタート。現在、聴覚過敏のある人・双子自閉症の我が子。近づくスピーカー音におびえ、イヤーマフをつけ、毛布をかぶっ… 朝から超望遠で散歩 おはようございます◞౪◟熱下がった…かな写真 カメラ 写真好きな人と繋がりたい 情景 カメラ好きな人と繋がりたい ふむふむ 寝るのも忘れて進撃見てたけど、細谷さんいるの嬉しくて発狂やしジャ... ^ SyntaxError: invalid character in identifier これでよろしいでしょうか?
robotKR

2021/10/24 03:01

音 半 濁 音 扱 う コ ー ド 書 い て 日 本 語 と か い う 言 語 ク ッ ソ だ る い な と な っ た そ ん な も ん ロ ビ ー 活 動 す る な よ 。 そ し て 厚 労 省 は 相 変 わ ら ず 人 の 居 る と こ ろ で 噴 霧 非 推 奨 。 活 動 実 ら ず 。 eval(tweets)をする直前のtweetsはこのような感じです。 長すぎるので最初の方だけです。
can110

2021/10/24 03:05

ふつうの文字列ですね。これだとevalやastではエラーになります。 この文字列をどのようなルールでリストにしたいのでしょうか? (空白文字「 」区切毎に別文字列のリストにしたい、など)
robotKR

2021/10/24 03:10

なるほど。そうなんですね!! 空白文字で区切りたいです。
guest

回答1

0

ベストアンサー

文字列を区切りたい場合は単純に.split(区切り文字)を使えばよいです。

Python

1tweets = "銀座和光時計台???? 奈良から富士山が見えるって知ってた おはようございます✌️✌️日曜日 言葉が出ない……。" 2print(tweets) 3tweets = tweets.split(' ') 4print(tweets)

イメージ説明

投稿2021/10/24 03:19

can110

総合スコア38341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

robotKR

2021/10/24 03:23

ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問