-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstring_manipulation.py
207 lines (190 loc) · 5.8 KB
/
string_manipulation.py
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
__author__ = 's3525116'
def extractFirstString(inputString):
start = 0
concatenated = ""
for char in inputString:
if (char == '"' and start == 0) or (char == '"' and start == 1)or (char == ',' and start == 1):
start = start + 1
continue
if (char == '[' and start == 1) or (char == ']' and start == 1)or (char == ' ' and start == 1) or (char == '{' and start == 1)or (char == '\\' and start == 1):
continue
if start == 2 and char !='"':
concatenated = concatenated + char
elif start == 2 and char =='"':
return concatenated
print("start")
print(start)
return concatenated
def extractAsin(inputString):
start = 0
concatenated = ""
for char in inputString:
if (char == ':' and start == 0):
start = start + 1
continue
if (char == ' ' and start == 1):
start = start + 1
continue
if (char == "'" and start == 2):
start = start + 1
continue
if start == 3 and char !="'":
concatenated = concatenated + char
elif start == 3 and char =="'":
return concatenated
return concatenated
def extractUnixTime(inputString):
start = 0
concatenated = ""
for char in inputString:
if char == '"' and start == 0:
start = start + 1
continue
if start == 1 and char ==':':
continue
if start == 1 and char !=':' and char != ',':
concatenated = concatenated + char
if char ==',':
break
retInt = int(concatenated)
return retInt
def extractRatingTime(inputString):
start = 0
hasDigits = 0
concatenated = ""
for char in inputString:
if char == '"' and start == 0:
start = start + 1
continue
if (start == 1 and char ==':') or (start == 1 and char =='(') or (start == 1 and char ==')') or (start == 1 and char =='[') or (start == 1 and char ==']')or (start == 1 and char =="\\"):
continue
if start == 1 and char !=':' and char != ',':
temp = char
if temp.isdigit() == True:
hasDigits = hasDigits + 1
concatenated = concatenated + char
if char ==',':
break
percent = 0.0
if len(concatenated) > 0 :
percent = float(hasDigits)/float(len(concatenated))
retNum = ""
if percent >= 0.50 :
try:
retNum = float(concatenated)
except ValueError as e:
print("inputString")
print(inputString)
print("concatenated")
print(concatenated)
print("percent")
print(percent)
else:
retNum = ""
return retNum
def extractHelpful(inputString):
start = 0
hasDigits = 0
concatenated = ""
for char in inputString:
if char == '"' and start == 0:
start = start + 1
continue
if start == 1 and char ==':':
continue
if start == 1 and char =='[':
continue
if start == 1 and char !=':' and char != ',':
temp = char
if temp.isdigit() == True:
hasDigits = hasDigits + 1
concatenated = concatenated + char
if char ==',':
break
percent = 0
if len(concatenated) > 0:
percent = float(hasDigits)/float(len(concatenated))
if percent >= 0.5:
try:
retInt = int(concatenated)
except OSError as e:
retInt = ""
else:
retInt = ""
#retInt = int(concatenated)
return retInt
def extractNumVotes(inputString):
start = 0
concatenated = ""
startconcat = 0
hasDigits = 0
for char in inputString:
if char == '"' and start == 0:
start = start + 1
continue
if start == 1 and char ==':':
continue
if start == 1 and char =='[':
continue
if start == 1 and char ==',':
startconcat = 1
continue
if char ==']':
break
if startconcat == 1:
temp = char
if temp.isdigit() == True:
hasDigits = hasDigits + 1
concatenated = concatenated + char
#retInt = int(concatenated)
percent = 0
if len(concatenated) > 0:
percent = float(hasDigits)/float(len(concatenated))
if percent >= 0.5:
try:
retInt = int(concatenated)
except OSError as e:
retInt = ""
else:
retInt = ""
return retInt
def extractSalesRank(inputString):
start = 0
categories = ""
rank = -1
concatenated = ""
startconcat = 0
hasDigits = 0
for char in inputString:
if char == '{' and start == 0:
start = start + 1
continue
if start == 1 and char =="'":
start = start + 1
continue
if start == 2 and char =="'":
start = start + 1
categories = concatenated
concatenated = ""
start = start + 1
continue
if start == 2 and char !="'":
concatenated = concatenated + char
continue
if start == 3 and char ==":":
start = start + 1
continue
if start == 4 and char !='}' and char !=" " and char !=":":
temp = char
if temp.isdigit() == True:
hasDigits = hasDigits + 1
concatenated = concatenated + char
continue
if start == 4 and char =='}':
percent = float(hasDigits)/float(len(concatenated))
if percent >= 0.7:
rank = int(concatenated)
else:
return ("None",-1)
break
return (categories,rank)