-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdataManupulator.py
More file actions
83 lines (65 loc) · 2.61 KB
/
dataManupulator.py
File metadata and controls
83 lines (65 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import csv
import json
from googletrans import Translator
translator = Translator();
def csv_to_json(csvFilePath, jsonFilePath):
jsonArray = []
# read csv file
with open(csvFilePath, encoding='utf-8') as csvf:
# load csv file data using csv library's dictionary reader
csvReader = csv.DictReader(csvf)
# convert each csv row into python dict
for row in csvReader:
# add this python dict to json array
jsonArray.append(row)
# convert python jsonArray to JSON String and write to file
with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
jsonString = json.dumps(jsonArray, indent=4)
jsonf.write(jsonString)
csvFilePath = r'song-corpus/songs.csv'
jsonFilePath = r'song-corpus/songs.json'
def translateJson():
new_list = []
with open('song-corpus/songs.json') as f:
list_songs = json.loads(f.read())
songs = list_songs
for song in songs:
translated = {}
for k, v in song.items():
translated[k] = v
if k in ["Title", "Album", "Metaphor"]:
translated[k + "_en"] = translator.translate(v, dest="en").text
new_list.append(translated)
with open('song-corpus/songs_final.json', 'w+') as f:
f.write(json.dumps(new_list))
def translateString(data):
global translator
if isinstance(data, dict):
return {k + "_en": translateString(v) for k, v in data.items()}
else:
return translator.translate(data, dest="en").text
# def get_songs_list():
# with open('song-corpus/songs.json') as f:
# list_songs = json.loads(f.read())
# return list_songs
def metaData():
metaData = {"title": [], "artist": [], "album": [], "lyricist": [], "metaphor": [], "meaning": [], "source": [],
"target": []}
with open('song-corpus/songs.json') as f:
list_songs = json.loads(f.read())
songs = list_songs
for song in songs:
metaData["title"].append(song["Title"])
metaData["artist"].append(song["Artist"])
metaData["album"].append(song["Album"])
metaData["lyricist"].append(song["Lyricist"])
metaData["metaphor"].append(song["Metaphor"])
metaData["meaning"].append(song["Meaning"])
metaData["source"].append(song["Source"])
metaData["target"].append(song["Target"])
with open('song-corpus/songs_metadata.json', 'w+') as f1:
f1.write(json.dumps(metaData))
if __name__ == "__main__":
# csv_to_json(csvFilePath, jsonFilePath)
# translateJson()
metaData()