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

时间:2019-04-03 07:34:43

标签: python 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"
      }
    }

实际结果:

[

3 个答案:

答案 0 :(得分:0)

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)

答案 1 :(得分:0)

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

因此,如果您尝试first_element = data[0],将会得到想要的东西。

然后,如果您想使其漂亮:

json.dumps(first_element, indent = 2)

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

json.loads

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

也: What's the best way to parse a JSON response from the requests library?

答案 2 :(得分:-1)

json.dumps结果为字符串。

您正在通过执行[0]

打印字符串的第一个单词

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

print(new_data)