43 lines
No EOL
1.8 KiB
Python
43 lines
No EOL
1.8 KiB
Python
import pandas as pd
|
|
import json
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from utils.documents_to_database import documents_to_database
|
|
from utils.convert_encoding_meta import convert_encoding_meta
|
|
|
|
## %% Obtenir le répertoire du fichier courant
|
|
# Obtenir le répertoire du fichier courant
|
|
try:
|
|
# Ceci fonctionnera lors de l'exécution en tant que script
|
|
script_dir = Path(__file__).parent.parent
|
|
except NameError:
|
|
# Ceci fonctionnera dans des environnements interactifs
|
|
script_dir = Path().absolute()
|
|
|
|
project_root = script_dir
|
|
fb_data_path = [os.path.join(project_root, 'import_data', 'data', 'Facebook', 'comments_and_reactions', 'comments.json')]
|
|
|
|
## %% Lire et parser le fichier JSON des commentaires Facebook
|
|
with open(fb_data_path[0], "r", encoding="raw-unicode-escape") as posts:
|
|
comments_json = json.loads(convert_encoding_meta(posts.read()))
|
|
|
|
## %% Extraire les données pertinentes de chaque commentaire
|
|
facebook_comments = []
|
|
for comment in comments_json['comments_v2']:
|
|
if comment.get('data'):
|
|
for data_item in comment['data']:
|
|
if data_item.get('comment'):
|
|
comment = data_item['comment']
|
|
facebook_comments.append({"network": "Facebook",
|
|
"type": "comments",
|
|
"index": "rs_facebook_comments_and_reactions",
|
|
"chemin": fb_data_path[0],
|
|
"texte": comment["comment"],
|
|
"creation_timestamp": comment["timestamp"]})
|
|
|
|
## %% Créer un DataFrame à partir des données extraites
|
|
facebook_comments_df = pd.DataFrame(facebook_comments)
|
|
|
|
## %% Envoyer les données à la base de données
|
|
documents_to_database(facebook_comments_df) |