Spaces:
Sleeping
Sleeping
test
Browse files- polls/databases/insert_line.py +78 -0
- polls/databases/test.csv +200 -0
polls/databases/insert_line.py
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import re
|
3 |
+
from sqlalchemy import create_engine, inspect, Table, MetaData, Column, String, text
|
4 |
+
import psycopg2
|
5 |
+
|
6 |
+
# チャット履歴ファイルを読み込む関数(最初の3行をスキップ)
|
7 |
+
def load_chat_history(file_path):
|
8 |
+
return pd.read_csv(file_path, skiprows=3)
|
9 |
+
|
10 |
+
# 個人情報をマスクする関数
|
11 |
+
def mask_personal_info(text):
|
12 |
+
# 電話番号のマスク
|
13 |
+
text = re.sub(r'\b\d{2,4}-\d{2,4}-\d{4}\b', '[電話番号]', text)
|
14 |
+
|
15 |
+
# メールアドレスのマスク
|
16 |
+
text = re.sub(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', '[メールアドレス]', text)
|
17 |
+
|
18 |
+
# 名前のマスク(例として"えみいわし"をマスク)
|
19 |
+
names = ['えみいわし']
|
20 |
+
for name in names:
|
21 |
+
text = re.sub(r'\b' + name + r'\b', '[名前]', text)
|
22 |
+
|
23 |
+
return text
|
24 |
+
|
25 |
+
# データフレームの特定の列の個人情報をマスクする関数
|
26 |
+
def mask_specific_columns(df, columns):
|
27 |
+
for column in columns:
|
28 |
+
df[column] = df[column].astype(str).apply(mask_personal_info)
|
29 |
+
return df
|
30 |
+
|
31 |
+
# データベースに接続する関数
|
32 |
+
def connect_to_db():
|
33 |
+
conn = psycopg2.connect(
|
34 |
+
dbname="neondb",
|
35 |
+
user="miyataken999",
|
36 |
+
password="yz1wPf4KrWTm",
|
37 |
+
host="ep-odd-mode-93794521.us-east-2.aws.neon.tech",
|
38 |
+
port=5432,
|
39 |
+
sslmode="require"
|
40 |
+
)
|
41 |
+
return conn
|
42 |
+
|
43 |
+
# ファイルパスの設定
|
44 |
+
input_file_path = '/home/user/app/polls/databases/test.csv' # エクスポートされたチャット履歴ファイルのパス
|
45 |
+
|
46 |
+
# チャット履歴を読み込み、特定の列の個人情報をマスク
|
47 |
+
chat_history_df = load_chat_history(input_file_path)
|
48 |
+
columns_to_mask = ['送信者タイプ', '送信者名', '送信日', '送信時刻', '内容']
|
49 |
+
masked_chat_history_df = mask_specific_columns(chat_history_df, columns_to_mask)
|
50 |
+
|
51 |
+
# データベースの接続設定
|
52 |
+
engine = create_engine('postgresql+psycopg2://miyataken999:yz1wPf4KrWTm@ep-odd-mode-93794521.us-east-2.aws.neon.tech:5432/neondb')
|
53 |
+
|
54 |
+
# テーブルが存在しない場合に作成
|
55 |
+
if not inspect(engine).has_table("fasis_chat_history"):
|
56 |
+
metadata = MetaData()
|
57 |
+
Table('fasis_chat_history', metadata,
|
58 |
+
*(Column(name, String) for name in masked_chat_history_df.columns))
|
59 |
+
metadata.create_all(engine)
|
60 |
+
|
61 |
+
# マスクされたデータをPostgreSQLにインポート
|
62 |
+
masked_chat_history_df.to_sql('fasis_chat_history', engine, if_exists='replace', index=False)
|
63 |
+
|
64 |
+
print("データのインポートが完了しました。")
|
65 |
+
|
66 |
+
# データベースに接続してクエリを実行する関数
|
67 |
+
def execute_query(query, engine):
|
68 |
+
with engine.connect() as connection:
|
69 |
+
result = connection.execute(text(query))
|
70 |
+
return result.fetchall()
|
71 |
+
|
72 |
+
# クエリの例: マスクされたデータを取得
|
73 |
+
query = "SELECT * FROM fasis_chat_history LIMIT 10;"
|
74 |
+
results = execute_query(query, engine)
|
75 |
+
|
76 |
+
# クエリ結果を表示
|
77 |
+
for row in results:
|
78 |
+
print(row)
|
polls/databases/test.csv
ADDED
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
アカウント名,リファスタ
|
2 |
+
タイムゾーン,'+09:00
|
3 |
+
ダウンロード日時,2024/06/16 22:01
|
4 |
+
送信者タイプ,送信者名,送信日,送信時刻,内容
|
5 |
+
Account,応答メッセージ,2024/03/02,10:48:01,【LINE査定方法】お気軽にお写真をお送り願えますでしょうか。
|
6 |
+
Account,応答メッセージ,2024/03/02,10:48:01,"げっとさま お友だち追加いただき誠にありがとうございます(moon big smile)(three hearts)
|
7 |
+
|
8 |
+
お品物のお写真(smartphone)はいつでもお気軽にお送りくださいませ(sparkle)
|
9 |
+
|
10 |
+
営業時間 11:00~20:00 年中無休"
|
11 |
+
Account,応答メッセージ,2024/03/02,10:48:01,【3月】買取強化キャンペーン
|
12 |
+
User,げっと,2024/03/02,10:50:32, 電話番号
|
13 |
+
Account,応答メッセージ,2024/03/02,10:50:32,"フリーダイヤル
|
14 |
+
お気軽にお電話くださいませ(sparkle)
|
15 |
+
10:30〜20:00 年中無休
|
16 |
+
|
17 |
+
オンライン買取も受付中
|
18 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
19 |
+
|
20 |
+
(smartphone) 電話番号
|
21 |
+
0120-954-679
|
22 |
+
|
23 |
+
(LINE messenger) LINE通話
|
24 |
+
https://lin.ee/c6inM4V"
|
25 |
+
User,げっと,2024/03/02,10:50:32,【リッチメニュー】本日の金価格
|
26 |
+
Account,応答メッセージ,2024/03/02,10:50:33,【リッチメニュー】本日の金価格
|
27 |
+
Account,Unknown,2024/03/03,11:59:59,"【LINEで解決しましたか?】(handshake)News(handshake)
|
28 |
+
お客さま、お困りごとは24時間365日送信可能(LINE messenger)必ず解決いたします(moon laugh)
|
29 |
+
|
30 |
+
【買取サービス概要等】
|
31 |
+
「ヘルプ」とご投稿ください。Keyword応答にて98%解決いたします。
|
32 |
+
|
33 |
+
(diamond)ダイヤ売却は3月迄が勝負(diamond)
|
34 |
+
※詳しくはYoutubeで!
|
35 |
+
https://t.ly/BH1uT
|
36 |
+
|
37 |
+
(dragon)遠方のお客様へ(dragon)
|
38 |
+
オンライン買取 “Promise”をリリース!ご自宅で簡単に宝飾品やブランド品の査定が可能なサービスです。
|
39 |
+
|
40 |
+
POINTは(handshake)その場でお買取価格を確定(handshake)
|
41 |
+
|
42 |
+
24時間365日査定予約可能。品物を送るのに心配な方は是非ご検討いただければ幸いです。
|
43 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
44 |
+
|
45 |
+
フリーダイヤル:0120-954-679
|
46 |
+
営業時間 11:00〜20:00 年中無休"
|
47 |
+
User,げっと,2024/03/06,10:33:13,買取方法
|
48 |
+
Account,応答メッセージ,2024/03/06,10:33:14,か:買取方法
|
49 |
+
User,げっと,2024/03/06,10:33:14, 電話番号
|
50 |
+
Account,応答メッセージ,2024/03/06,10:33:15,"フリーダイヤル
|
51 |
+
お気軽にお電話くださいませ(sparkle)
|
52 |
+
10:30〜20:00 年中無休
|
53 |
+
|
54 |
+
オンライン買取も受付中
|
55 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
56 |
+
|
57 |
+
(smartphone) 電話番号
|
58 |
+
0120-954-679
|
59 |
+
|
60 |
+
(LINE messenger) LINE通話
|
61 |
+
https://lin.ee/c6inM4V"
|
62 |
+
User,げっと,2024/03/06,18:41:09,【リッチメニュー】取扱商材
|
63 |
+
User,げっと,2024/03/06,18:41:10,【リッチメニュー】取扱商材
|
64 |
+
Account,応答メッセージ,2024/03/06,18:41:10,【リッチメニュー】取扱商材
|
65 |
+
Account,応答メッセージ,2024/03/06,18:41:10,【リッチメニュー】取扱商材
|
66 |
+
User,げっと,2024/03/06,18:41:11,買取方法
|
67 |
+
Account,応答メッセージ,2024/03/06,18:41:11,か:買取方法
|
68 |
+
User,げっと,2024/03/07,10:45:15,買取強化キャンペーン
|
69 |
+
Account,応答メッセージ,2024/03/07,10:45:15,【3月】買取強化キャンペーン
|
70 |
+
User,げっと,2024/03/07,10:45:16,買取強化キャンペーン
|
71 |
+
Account,応答メッセージ,2024/03/07,10:45:17,【3月】買取強化キャンペーン
|
72 |
+
Account,Unknown,2024/03/10,10:22:50,"【LINEで解決しましたか?】
|
73 |
+
お客さま、お困りごとは24時間365日送信可能❗必ず解決いたします(moon laugh)
|
74 |
+
|
75 |
+
(ring)ダイヤ売却は3月迄が勝負(fist bump)
|
76 |
+
※詳しくはYoutubeで!(looking right)
|
77 |
+
https://t.ly/BH1uT
|
78 |
+
|
79 |
+
(running)遠方のお客様へ(ok gesture)
|
80 |
+
ビデオ通話で宝飾品やブランド品の査定が可能なオンライン買取をリリース!POINT(index finger raised)はその場でお買取価格を確定(handshake)
|
81 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
82 |
+
|
83 |
+
(sparkle)金国内IG高単価(increasing graph)
|
84 |
+
10日から17日まで期間限定で金のインゴットの価格を(sparkle)国内超絶価格(dash)で提供!他店とは違い「預かりません、買うまでは。」(moon stone face)手数料無料・即日現金払いです!
|
85 |
+
https://kinkaimasu.jp/ingot/?openExternalBrowser=1&utm_source=LINE
|
86 |
+
|
87 |
+
フリーダイヤル:0120-954-679
|
88 |
+
営業時間 11:00〜20:00 年中無休"
|
89 |
+
User,げっと,2024/03/21,10:23:52, 電話番号
|
90 |
+
Account,応答メッセージ,2024/03/21,10:23:52,"フリーダイヤル
|
91 |
+
お気軽にお電話くださいませ(sparkle)
|
92 |
+
10:30〜20:00 年中無休
|
93 |
+
|
94 |
+
オンライン買取も受付中
|
95 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
96 |
+
|
97 |
+
(smartphone) 電話番号
|
98 |
+
0120-954-679
|
99 |
+
|
100 |
+
(LINE messenger) LINE通話
|
101 |
+
https://lin.ee/c6inM4V"
|
102 |
+
User,げっと,2024/03/21,10:23:53, 電話番号
|
103 |
+
Account,応答メッセージ,2024/03/21,10:23:53,"フリーダイヤル
|
104 |
+
お気軽にお電話くださいませ(sparkle)
|
105 |
+
10:30〜20:00 年中無休
|
106 |
+
|
107 |
+
オンライン買取も受付中
|
108 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
109 |
+
|
110 |
+
(smartphone) 電話番号
|
111 |
+
0120-954-679
|
112 |
+
|
113 |
+
(LINE messenger) LINE通話
|
114 |
+
https://lin.ee/c6inM4V"
|
115 |
+
Account,Ayano Mitsui,2024/03/21,10:50:10,リファスタが通話リクエストを送信しました。
|
116 |
+
Account,Ayano Mitsui,2024/03/21,10:50:11,お電話でのご相談も喜んで受け賜わります。お気軽にお問い合わせくださいませ。
|
117 |
+
User,げっと,2024/03/21,12:31:45,買取方法
|
118 |
+
Account,応答メッセージ,2024/03/21,12:31:46,か:買取方法
|
119 |
+
Account,Ayano Mitsui,2024/03/21,12:34:38,"【宅配申込フォーム】
|
120 |
+
げっとさま
|
121 |
+
|
122 |
+
https://kinkaimasu.jp/delivery/?openExternalBrowser=1&utm_source=LINE
|
123 |
+
お差し支えなければコチラより宅配買取へお申し込みくださいませ。
|
124 |
+
|
125 |
+
※査定金額にご満足いただけずご返却の場合は、キャンセル料は無料・返送費用は弊社負担でございます。
|
126 |
+
|
127 |
+
※お申込み後、ラインにてお名前+メールアドレス(or電話番号)の2投稿をお願いします。
|
128 |
+
|
129 |
+
▼梱包キットなし▼
|
130 |
+
弊社にて配送業者を手配いたします。
|
131 |
+
ご自宅にて梱包を済ませていただき、集荷をお待ちください。
|
132 |
+
|
133 |
+
▼梱包キットあり▼
|
134 |
+
梱包材を無料で発送いたします。
|
135 |
+
※お受取り後着払いでお送りください。
|
136 |
+
|
137 |
+
◆宅配買取システムガイド◆
|
138 |
+
https://kinkaimasu.jp/choice/navi/?openExternalBrowser=1&utm_source=LINE
|
139 |
+
無料宅配買取をご利用いただく前に気になるアレコレをまとめたリストページでございます。
|
140 |
+
買取の流れはもちろん、買取品目、身分証についてなど、こちらのページから各詳細ページへアクセス可能でございます。"
|
141 |
+
User,げっと,2024/03/21,16:33:57,【リッチメニュー】取扱商材
|
142 |
+
Account,応答メッセージ,2024/03/21,16:33:58,【リッチメニュー】取扱商材
|
143 |
+
Account,kenta-low-,2024/03/22,13:25:32,"【LINEで解決しましたか?】
|
144 |
+
げっとさま、お困りごとは24時間365日送信可能❗必ず解決いたします(moon laugh)
|
145 |
+
|
146 |
+
(ring)ダイヤ売却は3月迄が勝負(fist bump)
|
147 |
+
※詳しくはYoutubeで!(looking right)
|
148 |
+
https://t.ly/BH1uT
|
149 |
+
|
150 |
+
(running)遠方のお客様へ(ok gesture)
|
151 |
+
ビデオ通話で宝飾品やブランド品の査定が可能なオンライン買取をリリース!POINT(index finger raised)はその場でお買取価格を確定(handshake)
|
152 |
+
https://kinkaimasu.jp/online-promise/?openExternalBrowser=1&utm_source=LINE
|
153 |
+
|
154 |
+
フリーダイヤル:0120-954-679
|
155 |
+
営業時間 11:00〜20:00 年中無休"
|
156 |
+
User,げっと,2024/05/21,10:04:15,買取強化キャンペーン
|
157 |
+
Account,応答メッセージ,2024/05/21,10:04:16,【5月】買取強化キャンペーン
|
158 |
+
Account,Unknown,2024/05/22,19:24:28,"【LINEで解決しましたか?】
|
159 |
+
お客さま、お困りごとは24時間365日送信可能❗必ず解決いたします(moon laugh)
|
160 |
+
|
161 |
+
(diamond)今月はダイヤモンドのキャンペーンを実施中(diamond)
|
162 |
+
|
163 |
+
(ring)金やダイヤの相場をチェック(fist bump)
|
164 |
+
※詳しくはYoutubeで!(looking right)
|
165 |
+
https://www.youtube.com/@refastaofficial
|
166 |
+
|
167 |
+
(running)遠方のお客様へ(ok gesture)
|
168 |
+
3Daysをリリース!
|
169 |
+
|
170 |
+
POINT(index finger raised)は発送日から地金価格を1番高いところで買取補償定(handshake)
|
171 |
+
https://kinkaimasu.jp/gold/price-guarantee/?openExternalBrowser=1&utm_source=LINE
|
172 |
+
|
173 |
+
フリーダイヤル:0120-954-679
|
174 |
+
営業時間 11:00〜20:00 年中無休"
|
175 |
+
User,げっと,2024/06/10,18:03:31,【リッチメニュー】取扱商材
|
176 |
+
Account,応答メッセージ,2024/06/10,18:03:31,【リッチメニュー】取扱商材
|
177 |
+
Account,応答メッセージ,2024/06/10,18:03:31,"💎鑑定書発行代行サービス💎
|
178 |
+
https://kinkaimasu.jp/diamond/certificate-agency/?openExternalBrowser=1&utm_source=LINE"
|
179 |
+
Account,shin,2024/06/10,18:06:52,リファスタが通話リクエストを送信しました。
|
180 |
+
Account,kenta-low-,2024/06/11,09:22:35,"【LINEで解決しましたか?】
|
181 |
+
げっとさま、お困りごとは24時間365日送信可能❗必ず解決いたします(moon laugh)
|
182 |
+
|
183 |
+
(diamond)6月は宝石キャンペーン実施中(diamond)
|
184 |
+
※出張買取強化中※
|
185 |
+
代表が日本行脚中:https://posts.gle/32PAec
|
186 |
+
※本日鹿児島最南端〜熊本エリア
|
187 |
+
|
188 |
+
(ring)金やダイヤの相場をチェック(fist bump)
|
189 |
+
※詳しくはYoutubeで!(looking right)
|
190 |
+
https://www.youtube.com/@refastaofficial
|
191 |
+
|
192 |
+
(running)遠方のお客様へ(ok gesture)
|
193 |
+
5Daysをリリース!
|
194 |
+
|
195 |
+
POINT(index finger raised)は申込日から地金価格を1番高いところで買取補償定(handshake)
|
196 |
+
※2回目以降のお客様でお申込がない場合は発送日
|
197 |
+
https://kinkaimasu.jp/gold/price-guarantee/?openExternalBrowser=1&utm_source=LINE
|
198 |
+
|
199 |
+
フリーダイヤル:0120-954-679
|
200 |
+
営業時間 11:00〜20:00 年中無休"
|