Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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 从列表内部打印字典会在每行上放置一个字符_Python_Json - Fatal编程技术网

Python 从列表内部打印字典会在每行上放置一个字符

Python 从列表内部打印字典会在每行上放置一个字符,python,json,Python,Json,是的,还有一个。我想不出问题出在哪里。我试图遍历一个列表,该列表是API调用的JSON输出的一个子部分 这是我正在处理的JSON部分: [ { "created_at": "2017-02-22 17:20:29 UTC", "description": "", "id": 1, "label": "FOO", "name": "FOO", "title": "FOO", "u

是的,还有一个。我想不出问题出在哪里。我试图遍历一个列表,该列表是API调用的JSON输出的一个子部分

这是我正在处理的JSON部分:

[
    {
        "created_at": "2017-02-22 17:20:29 UTC",
        "description": "",
        "id": 1,
        "label": "FOO",
        "name": "FOO",
        "title": "FOO",
        "updated_at": "2018-12-04 16:37:09 UTC"
    }
]
我正在运行的代码将检索并显示此内容:

#/usr/bin/python
导入json
导入系统
尝试:
导入请求
除恐怖外:
打印“请安装python请求模块”
系统出口(-1)
星期六https://satellite6.example.com/api/v2/'
USERNAME=“admin”
PASSWORD=“PASSWORD”
SSL_VERIFY=False#暂时忽略SSL
def get_json(url):
#使用传递的URL位置执行GET
r=requests.get(url,auth=(用户名,密码),verify=SSL\u verify)
返回r.json()
def get_结果(url):
jsn=获取json(url)
如果jsn.get('error'):
打印“错误:+jsn['Error']['message']
其他:
如果jsn.get('results'):
返回jsn['results']
elif“结果”不在jsn中:
返回jsn
其他:
打印“未找到结果”
一无所获
def显示所有结果(url):
结果=获取结果(url)
如果结果是:
返回json.dumps(结果,缩进=4,排序键=True)
def main():
orgs=显示所有结果(KATELLO_API+“organizations/”)
对于组织中的组织:
印刷组织
如果名称=“\uuuuu main\uuuuuuuu”:
main()
我似乎缺少一个概念,因为当我打印
org
时,每行都会得到一个字符,例如

[




{







"
c
r
e
a
t
e
d
_
a
t
"
它一直到最后一个
]

我还尝试打印
org['name']
,它抛出
TypeError:列表索引必须是整数,而不是str-Python
错误。这让我认为,
org
被看作是一个列表,而不是一个字典,我认为这是由于
[{…}]
格式

我遗漏了什么概念


编辑:对我为什么没有得到这一点的解释:我正在使用中的一个脚本,我正在使用该脚本创建另一个脚本。我基本上是边走边学。

Orgs是json.dump的结果,它生成一个字符串。因此,与此代码不同:

for org in orgs:
    print(org)
将其替换为:

#for org in orgs:
print(orgs)

display\u all\u results
返回字符串,因为您在
json.dumps(results,indent=4,sort\u keys=True)
,它将字典转换为字符串(您从
get\u json
函数中的
r.json()
获取字典)

然后在
main
中迭代该字符串的字符,每行可以看到一个字符

相反,只需从
显示所有结果
返回
结果
,代码将按预期工作

def display_all_results(url):
    #results is already a dictionary, just return it
    results = get_results(url)
    if results:
        return results

谢谢就这样。我不熟悉
json.dumps
(或者大部分python),所以我缺少了这个概念。