Wenn ich json.loads verwenden erhalte ich die Fehler folgendeIch halte den folgenden Fehler immer versuchen, json in Python „String-Indizes ganze Zahlen sein müssen“
string indices must be integers
ich etwas Forschung tat, und sah, wie jemand mit dem, was Ich dachte, es wäre eine ähnliche Situation. Ich änderte dieses
json.dumps(newstring_two)
dieser
json.loads(json.dumps(newstring_two))
aber es immer noch nicht funktioniert. Hier wird die Funktion habe ich
def panties():
pan_url = 'http://www.panvideos.com'
html = requests.get(pan_url, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
video_row = soup.find_all('div', {'class': 'video'})
def youtube_link(url):
youtube_page = requests.get(url, headers=headers)
soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
video_row = soupdata.find('div', {'class': 'video-player'})
entries = [{'text': str(div),
} for div in video_row][3]['text']
oldstring = str(entries)
removed = '<script type="text/javascript">jwplayer("video-setup").setup('
newstring = oldstring.replace(removed, "")
removed_two = ');</script>'
newstring_two = newstring.replace(removed_two, "")
parsed_json = json.dumps(newstring_two)
finishe = parsed_json['file']
return finishe
entries = [{'text': div.h4.text,
'href': div.a.get('href'),
'tube': youtube_link(div.a.get('href')),
} for div in video_row][:1]
return entries
aber es funktioniert nicht. Was ist das Problem?
EDIT: meine volle Spur zurück
Traceback (most recent call last):
File "/Users/ray/Desktop/oku/practice/lib/python3.5/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/Users/ray/Desktop/oku/practice/lib/python3.5/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/ray/Desktop/oku/super_nu/src/blog/views.py", line 164, in index
pan = panties()
File "/Users/ray/Desktop/oku/super_nu/src/blog/my_scraps.py", line 166, in panties
} for div in video_row][:1]
File "/Users/ray/Desktop/oku/super_nu/src/blog/my_scraps.py", line 166, in <listcomp>
} for div in video_row][:1]
File "/Users/ray/Desktop/oku/super_nu/src/blog/my_scraps.py", line 159, in youtube_link
finishe = parsed_json['file']
TypeError: string indices must be integers
Bitte fügen Sie die vollständige Fehlerrückverfolgung zu Ihrer Frage hinzu! –
'json.dumps()' gibt eine Zeichenfolge zurück. Sie können einen String nicht mit einem Schlüsselnamen indizieren, wie Sie es in 'finishe = parsed_json ['file']' 'tun. –
Auch der Variablenname 'parsed_json' lässt mich denken, dass Sie' json.dumps' und 'json.loads' verwirrt haben. –