Json Парсинг из API с Dicts

== проверяет ссылки на объекты, .equals() проверяет строковые значения.

Иногда кажется, что == сравнивает значения, потому что Java делает некоторые закулисные вещи, чтобы убедиться, что одинаковые строки в строке являются одним и тем же объектом.

Для Например:

String fooString1 = new String("foo");
String fooString2 = new String("foo");

// Evaluates to false
fooString1 == fooString2;

// Evaluates to true
fooString1.equals(fooString2);

// Evaluates to true, because Java uses the same object
"bar" == "bar";

Но будьте осторожны с нулями!

== обрабатывает строки null в порядке, но вызов .equals() из пустой строки приведет к исключению:

String nullString1 = null;
String nullString2 = null;

// Evaluates to true
System.out.print(nullString1 == nullString2);

// Throws a NullPointerException
System.out.print(nullString1.equals(nullString2));

Итак, если вы знаете, что fooString1 может но не менее очевидно, что он проверяет значение null (из Java 7):

System.out.print(Objects.equals(fooString1, "bar"));
1
задан QHarr 10 March 2019 в 07:52
поделиться

2 ответа

Вы можете зациклить индекс, который распечатает их все

for i in range(300):
    print(response_dict['entries'][i]['summonerName'])

Когда вы используете response_dict['entries'][M:N]

Вы создаете новый список словарей, которые должны быть извлечены прежде чем вы можете ссылаться на ['summonerName'] непосредственно

Если вы print(response_dict['entries'][0:3])

Вы поймете, что я имею в виду

0
ответ дан Orrbifold 10 March 2019 в 07:52
поделиться

Я бы просто преобразовал список словарей в записях в фрейм данных. У вас есть вся хорошо организованная информация, и вы можете легко получить доступ к определенным элементам, включая вашу колонку для summonerName.

import requests
from bs4 import BeautifulSoup as bs
import json
import pandas as pd
#url = yourURL
res = requests.get(url, headers = {'user-agent' : 'Mozilla/5.0'})
soup = bs(res.content, 'lxml')
data = json.loads(soup.select_one('p').text)
df = pd.DataFrame(data['entries'])
print(df)
0
ответ дан QHarr 10 March 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: