Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么print(new_data[0])只打印json文件的第一个字符?_Python_Json - Fatal编程技术网

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

Python 为什么print(new_data[0])只打印json文件的第一个字符?,python,json,Python,Json,我试图打印这个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",

我试图打印这个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.dumps生成一个字符串

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

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


printnew_data

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.dumpsfirst_元素,缩进=2

如果希望JSON对象的行为类似于字典,请查看

json.loads

此外:

json.dumps将Python对象编码为json。您正在打印JSON字符串的第一个字符。此外,转储是多余的,如果您希望以字符串形式响应而不是python dict,请使用response.text而不是response.JSON,然后将其解析回字符串。无需将其转换为字符串。JSON.dumps的返回值已经是字符串。只需打印新的数据。如果只需要第一个数据条目,则应尝试使用new_data=json.dumpsdata[0],indent=2。即使响应失败?我要去检查一下文件,这件事成功了。如果我省略json.dumpsdata,indent=2并使用printdata[0],它也可以工作。问题:有没有一种方法可以不用json.dumps来缩进它?@doostaay您可以尝试pprint或pretify: