1
Я запрашиваю данные Google+ с TF-IDF и сохраняю данные как файл JSON
. Во время работы с этим файлом я получаю сообщение об ошибке.python-TypeError: строковые индексы должны быть целыми числами. Как исправить?
Код
import json
import nltk
DATA = 'C:/Users/Dung Ring/Desktop/kpdl/107033731246200681024.json'
data = json.loads(open(DATA).read())
QUERY_TERMS = ['SOPA']
activities = [activity['object']['content'].lower().split() \
for activity in data \
if activity['object']['content'] != " "]
# TextCollection provides tf, idf, and tf_idf abstractions so
# that we don't have to maintain/compute them ourselves
tc = nltk.TextCollection(activities)
relevant_activities = []
for idx in range(len(activities)):
score = 0
for term in [t.lower() for t in QUERY_TERMS]:
score += tc.tf_idf(term, activities[idx])
if score > 0:
relevant_activities.append({'score': score, 'title': data[idx]['title'],
'url': data[idx]['url']})
# Sort by score and display results
relevant_activities = sorted(relevant_activities, key=lambda p: p['score'], reverse=True)
for activity in relevant_activities:
print activity['title']
print '\tLink: %s' % (activity['url'],)
print '\tScore: %s' % (activity['score'],)
print
Сообщение об ошибке
Traceback (most recent call last):
File "ex9.py", line 11, in <module>
if activity['object']['content']!= ""]
TypeError: string indices must be integers
Я использую Python 2.7.
Если вам нужно что-то более конкретное, чем мой ответ, вам нужно предоставить нам и пример вашего json-файла. – LeartS
Должны ли мы догадываться, каковы ваши данные? Единственным очевидным моментом является то, что либо 'activity', либо' activity ['object'] 'является строкой. –
это мой json-файл. Ссылка: https://www.dropbox.com/s/rl72mwmi4rifqjq/107033731246200681024.json?dl=0 –