現在、APIから得た情報をSQLデータベースに保存したいと考えています。
TwitterAPIから得た情報をSQLデータベースに移したいと考え、サイトの
https://www.analyticsvidhya.com/blog/2020/08/analysing-streaming-tweets-with-python-and-postgresql/
を参考に以下のコードを入力したところエラーとなってしまいました。
>>> from twitter import * >>> auth = OAuth( ... consumer_key='QyVL7V9u4m61xeUxRSignDdVR', ... consumer_secret='fgPDeUP0WKhXSRgkYiH7CrU3qiUEmtUV5DTRboMuq3WSEysATO', ... token='000', ... token_secret='000' ... ) >>> params = dict() >>> params["locations"] = "139.48, 35.30, 139.57, 35.34" >>> twitter_stream = TwitterStream(auth=auth, domain='stream.twitter.com') >>> import psycopg2 >>> conn = psycopg2.connect(host='localhost', dbname='twitterdb', user='postgres', password='000', port='5432') >>> cur = conn.cursor() >>> command = '''INSERT INTO TwitterUser (id, text, geo.coordinates) VALUES (%s,%s) ON CONFLICT ... (User_Id) DO NOTHING;''' >>> cur.execute(command,(id,text,geo.coordinates)) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'text' is not defined
その為調べるなどして以下の2つの可能性を考えました。
●書き出したTwitterのデータ名が間違っている
Twitterdeveloperサイトの
リンク内容
を参考にしたところデータ名はresponsefieldに記述されたものと合致していました。
●pgadmin4のtableの情報が合致していない。
同サイトに記載のあるdatatypeはpgadmin4のdatatypeの選択画面にありませんでした。
その為これが原因なのではないかと考えております。
tableで設定したdatatypeが合致していないことが原因なのでしょうか。
また、pgadmin4でdatatypeを設定するときstringやobject、arrayに対応したタイプはあるのでしょうか。
回答1件
あなたの回答
tips
プレビュー