为什么 print(new_data[0]) 只打印出 json 文件的第一个字符?



im 尝试打印此 JSON 文件的第一个对象,但它只打印它的第一个字符。

这是我的代码:

response = requests.get("http://jsonplaceholder.typicode.com/users")
data = response.json()
new_data = json.dumps(data, indent = 2)
print(str(new_data[0]))

我希望的结果:

{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
}

实际结果:

[

json.dump 响应的第一个元素:

import json
response = requests.get("http://jsonplaceholder.typicode.com/users")
data = response.json()
first_elem = json.dumps(data[0], indent=2)
print(first_elem)

显然response.json()已经是字典了。

因此,如果您尝试first_element = data[0]您将获得所需的内容。

然后,如果你想让它变得漂亮:

json.dumps(first_element, indent = 2)

如果您希望 JSON 对象的行为像字典一样,请查看

json.loads

https://docs.python.org/2/library/json.html

也: 从请求库解析 JSON 响应的最佳方法是什么?

json.dumps 会产生一个字符串。

您正在通过执行[0]来打印字符串的第一个单词

对于所需的输出,请执行以下操作:

print(new_data)

最新更新