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