Попытка разобрать данные JSON из URL с помощью Python - PullRequest
0 голосов
/ 12 июля 2019

Я пытаюсь настроить сборщик IP-данных через python и JSON API, но у меня возникают проблемы с анализом данных JSON.

Я попытался загрузить и выгрузить данные, но ничего из этого не работает, поэтому я не знаю, как мне проанализировать эти данные.

#Importing
import requests
import json
import os

#Variables
cls = os.system('cls')
#Startup

cls #Clearing the console on startup

ipToSearch = input("Please enter the IP you wish to search: ")
saveDetails = input("Would you like to save the IP's deatils to a file? Y/N: ")

ip_JSON = requests.get(url="http://ip-api.com/json/" + ipToSearch).json()
ip_Data = json.loads(ip_JSON)
print(ip_Data)

Я пытаюсь проанализировать информацию IP, но в результате эта ошибка в настоящее время.

Traceback (most recent call last):
  File "main.py", line 16, in <module>
    ip_Data = json.loads(ip_JSON)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 341, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

попробуйте json.dumps, вот так

ip_JSON = requests.get(url="http://ip-api.com/json/" + ipToSearch).json()
ip_Data = json.dumps(ip_JSON)
0 голосов
/ 12 июля 2019

Трассировка происходит потому, что похоже, что вы уже конвертировали ее в json в предыдущей строке .json(), а затем пытаетесь сделать это снова.

ip_JSON = requests.get(url="http://ip-api.com/json/" + ipToSearch).json()
ip_Data = json.loads(ip_JSON)

Попробуйте

ip_JSON = requests.get(url="http://ip-api.com/json/" + ipToSearch).json()
print(ip_JSON)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...