使用 Python 到 Return JSON 条目接受来自 API 的用户输入
Accepting User Input Using Python To Return JSON entry from an API
import requests
url = 'http://jsonplaceholder.typicode.com/users'
response = requests.get(url)
users = response.json()
id_num = input("Please enter id number:")
user_name = input("Please enter username:")
for person in users:
if person[id_num].title == person[user_name].title:
try:
print(person["name"])
except AttributeError:
print("Input doesn't match out records.")
结果:
C:\Users\username\PycharmProjects\foldername\venv\Scripts\python.exe C:/Users/username/PycharmProjects/foldername/foldername/main.py
Please enter id number:1
Please enter username:Bret
Traceback (most recent call last):
File "C:\Users\username\PycharmProjects\foldername\foldername\main.py", line 11, in <module>
if person[id_num].title == person[user_name].title:
KeyError: '1'
Process finished with exit code 1
因此,我试图要求用户向 return API 文件的 JSON 文件的名称条目提供请求的输入。我试过切换变量,因为它说的是 KeyError Bret。然后我添加了 .title
来处理用户输入请求信息时的错误。然后我添加了我必须在那里的 try/except
。仍然是第一个接受输入的 KeyError。
我正在使用安装了请求的最新 pycharm。从我正在工作的演示中我不应该导入任何其他东西,代码在它只是
时确实有效
for person in users:
print(person["name"])
当然 return 是 API 中 JSON 文件中的所有名称。我需要接受用户输入和 return 的名称,我知道我错过了一些不知道是什么的东西。这只是我与 python 的第三个项目。我已经完成了 csv、xml 和字典迭代。
我相信这会给你想要的答案:
for person in users:
if(person["id"]==int(id_num)):
person_username = person["username"]
if(person_username == user_name):
print(person["name"])
基本上,这个问题出现在这段代码中:person[id_num].title
。
比如说,你的 id_name = 1。现在,你在这里试图做的是从 person 字典中获取键的值,其中键 = 1。因为这不是一个有效的键存在于 person 字典中,导致 KeyError。
现在,在上面给出的代码中,我们首先检查的是此人的 id 值是否等于 id_num 输入。如果这是真的,那么我们正在获取具有 id = id_num 值的人的用户名值。之后,我们检查提取的用户名值是否等于提供的用户名输入!
import requests
url = 'http://jsonplaceholder.typicode.com/users'
response = requests.get(url)
users = response.json()
id_num = input("Please enter id number:")
user_name = input("Please enter username:")
for person in users:
if person[id_num].title == person[user_name].title:
try:
print(person["name"])
except AttributeError:
print("Input doesn't match out records.")
结果:
C:\Users\username\PycharmProjects\foldername\venv\Scripts\python.exe C:/Users/username/PycharmProjects/foldername/foldername/main.py
Please enter id number:1
Please enter username:Bret
Traceback (most recent call last):
File "C:\Users\username\PycharmProjects\foldername\foldername\main.py", line 11, in <module>
if person[id_num].title == person[user_name].title:
KeyError: '1'
Process finished with exit code 1
因此,我试图要求用户向 return API 文件的 JSON 文件的名称条目提供请求的输入。我试过切换变量,因为它说的是 KeyError Bret。然后我添加了 .title
来处理用户输入请求信息时的错误。然后我添加了我必须在那里的 try/except
。仍然是第一个接受输入的 KeyError。
我正在使用安装了请求的最新 pycharm。从我正在工作的演示中我不应该导入任何其他东西,代码在它只是
时确实有效for person in users:
print(person["name"])
当然 return 是 API 中 JSON 文件中的所有名称。我需要接受用户输入和 return 的名称,我知道我错过了一些不知道是什么的东西。这只是我与 python 的第三个项目。我已经完成了 csv、xml 和字典迭代。
我相信这会给你想要的答案:
for person in users:
if(person["id"]==int(id_num)):
person_username = person["username"]
if(person_username == user_name):
print(person["name"])
基本上,这个问题出现在这段代码中:person[id_num].title
。
比如说,你的 id_name = 1。现在,你在这里试图做的是从 person 字典中获取键的值,其中键 = 1。因为这不是一个有效的键存在于 person 字典中,导致 KeyError。
现在,在上面给出的代码中,我们首先检查的是此人的 id 值是否等于 id_num 输入。如果这是真的,那么我们正在获取具有 id = id_num 值的人的用户名值。之后,我们检查提取的用户名值是否等于提供的用户名输入!