Я хочу взять таблицу всех песен Beatles и разобрать его в к формированию JSON, категоризированное с песней которым было написано Маккартни и Lenon ...разбор LXML взят из URL в JSon
данные Я получаю, когда я бегу следующий код LXML линии формирования:
from bs4 import BeautifulSoup
import urllib
import requests
import pandas as pd
import json
import collections
from collections import OrderedDict
url = 'https://en.wikipedia.org/wiki/List_of_songs_recorded_by_the_Beatles'
r = requests.get(url)
data = r.text
table_data = [[[cell.text for cell in row("td")],[cell.text for cell in row("th")]] for row in BeautifulSoup(data,"lxml").find_all('table')[4]("tr")]
for row in table_data:
for i in row:
if len(i) > 0:
print(i)
Теперь, когда я пытаюсь делать с помощью URLLIB в не работает.
Например, этот код не обрабатывает из-за следующей ошибки:
from bs4 import BeautifulSoup
import urllib
import requests
import pandas as pd
import json
import collections
from collections import OrderedDict
url = 'https://en.wikipedia.org/wiki/List_of_songs_recorded_by_the_Beatles'
response = urllib.request.urlopen(url)
r = json.loads(response)
data = r.text
print (data)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-217-b9bf4e8bed5c> in <module>()
9 url = 'https://en.wikipedia.org/wiki/List_of_songs_recorded_by_the_Beatles'
10 response = urllib.request.urlopen(url)
---> 11 r = json.loads(response)
12 data = r.text
13 print (data)
C:\Users\Mark\Anaconda3\lib\json\__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
310 if not isinstance(s, str):
311 raise TypeError('the JSON object must be str, not {!r}'.format(
--> 312 s.__class__.__name__))
313 if s.startswith(u'\ufeff'):
314 raise JSONDecodeError("Unexpected UTF-8 BOM (decode using utf-8-sig)",
TypeError: the JSON object must be str, not 'HTTPResponse'
Что может быть решение? Я не нашел ничего полезного в API и в google/stackoverflow.
Пожалуйста [править] Ваш вопрос и описать то, что "этот код не обрабатывает" означает точно. Если есть ошибка, пожалуйста, также добавьте полную трассировку. – martineau
только что добавил ошибку –