Ich brauche Hilfe beim Sortieren meiner Schlüssel-Wert-Paar. Meine Ausgabe ist in dieser URL http://pastebin.com/ckKAtP5y. Aber was ich versucht habe zu tun ist.Python IndexError - Brauchen Sie Hilfe Sortierschlüssel und Wert
{
"courses": [
{
"professors": [
{
"first_name": "Zvezdelina",
"last_name": "Stankova",
"professor_url": "http://www.ratemyprofessors.com/ShowRatings.jsp?tid=375269",
"helpfullness": 4.3,
"clarity": 4.3,
"overall_rating": 4.3
}],
"course_name": "CHEM 1",
"course_mentioned_times": 37
},
{
"professors": [
{
"first_name": "Alan",
"last_name": "Shabel",
"professor_url": "http://www.ratemyprofessors.com/ShowRatings.jsp?tid=1309831",
"helpfullness": 3.9,
"clarity": 3.5,
"overall_rating": 3.7
}],
"course_name": "CHEMISTRY 231",
"course_mentioned_times": 50
}
]
Also, was ich tun möchte, ist ich vergleichen wollen ‚CHEM‘ und ‚Chemie‘ in „COURSE_NAME“ und mich nur bekommen die meisten ‚course_mentioned_times‘ und die andere entfernen. In diesem Fall möchte ich CHEMISTRY 231, weil es 50 Mal erwähnt wird.
Hier ist, was mir bisher geholfen wurde.
if __name__ == "__main__":
import json
#'output_info.json is http://pastebin.com/ckKAtP5y
with open('output_info.json') as data_file:
data = json.load(data_file)
temp_data = data
greater = []
len1 = len(data['courses'])
len2 = len1
for i in range(0,len1):
for j in range(0, len2):
if i==j:
continue
if data['courses'][i]['course_name'][0] == temp_data['courses'][j]['course_name'][0]:
if data['courses'][i]['course_name'][1] == temp_data['courses'][j]['course_name'][1]:
if data['courses'][i]['course_name'][2] == temp_data['courses'][j]['course_name'][2]:
if data['courses'][i]['course_mentioned_times']> temp_data['courses'][j]['course_mentioned_times']:
greater.append(i)
else:
greater.append(j)
final = []
for i in greater:
if i not in final:
final.append(i)
list_order = []
for i in range(0,len(data['courses'])):
list_order.append(i)
new_final = []
for i in list_order:
if i not in final:
new_final.append(i)
for i in new_final:
if i!=new_final[0]:
i=i-1
data['courses'].pop(i)
# Writing the new json data back to data.json file.
with open('data.json', 'w') as f:
json.dump(data, f)
Dieser Code gibt mir eine Indexerror data [ 'Kurse'] Pop (i) Indexerror:. Pop Indexbereich aus
Nur für CHEM? Was ist mit Mathe? Möchtest du die ** max ** von natürlich genannten Zeiten für ähnliche Namen bekommen? Ich verstehe es nicht –
Ja, ich möchte max of course_nowed_times für ähnliche Namen. Also auch für MATH. – Benji
Wie planen Sie, sie zu vergleichen, wenn Sie Kurse wie ** B 103 ** haben. Ich sehe auch einen wie '' course_name ":" 7 ",'. –