Проверить dict из Json вывода (urllib2) - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь извлечь определенные c данные из вывода json с помощью urllib2. Из приведенного ниже кода и выходных данных я пытаюсь извлечь значение c, но мне не удалось этого сделать.

Это сам URL:

baseURIs: [
{
service: "true",
location: "alex",
URL: "barcelonat",
},
{
service: "false",
location: "daniel",
URL: "RealMadrid",
},

Это это результат json (с использованием моего кода):

{u'URL': u'barcelona', u'location': u'alex', u'service': u'true'}
{u'URL': u'RealMadrid', u'location': u'daniel', u'service': u'false'}

Я пытаюсь найти этот dict и напечатать «нашел», если есть строка «RealMadrid». Вот код:

#!/usr/bin/env python
import time
from datetime import datetime
import json
import urllib2
req = urllib2.Request('http://admin/alex/0.json')
response = urllib2.urlopen(req)
page = response.read()
user_dict = json.loads(page)
count = 0

for k in user_dict['baseURIs']:
    if 'RealMadrid' in k:
        print("Found it!")

Ответы [ 3 ]

0 голосов
/ 29 мая 2020

Вы ищите по клавишам dict вместо значений. Попробуйте:

for k in user_dict['baseURIs']:
    if 'RealMadrid' in k.values():
        print("Found it!")
0 голосов
/ 29 мая 2020

Вы можете получить доступ к значениям, чтобы сравнить их с вашим поисковым запросом

user_dict= {
    "baseURIs": [
    {
        "service": "true",
        "location": "alex",
        "URL": "barcelonat",
    },
    {
        "service": "false",
        "location": "daniel",
        "URL": "RealMadrid",
    }]
}


for key in user_dict['baseURIs']:
    if 'RealMadrid' in key.values():
        print("Found it!")
0 голосов
/ 29 мая 2020

Ваш фрагмент кода:

for k in user_dict['baseURIs']:
    if 'RealMadrid' in k:
        print("Found it!")

Ищет 'RealMadrid' в словаре k, что означает поиск этой строки в словаре keys . Однако в словаре, который вы предоставили в качестве входных данных, 'RealMadrid' - это не ключ, а значение, связанное с ключом 'URL'. Замените указанное выше на:

for k in user_dict['baseURIs']:
    if k['URL'] == 'RealMadrid':
        print("Found it!")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...