gpt4 book ai didi

python - 从列表中打印字典会在每一行上放置一个字符

转载 作者:行者123 更新时间:2023-11-28 21:32:22 24 4
gpt4 key购买 nike

是的,还有一个。我无法弄清楚问题是什么。我正在尝试迭代一个列表,该列表是 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
import json
import sys
try:
import requests
except ImportError:
print "Please install the python-requests module."
sys.exit(-1)

SAT_API = 'https://satellite6.example.com/api/v2/'
USERNAME = "admin"
PASSWORD = "password"
SSL_VERIFY = False # Ignore SSL for now

def get_json(url):
# Performs a GET using the passed URL location
r = requests.get(url, auth=(USERNAME, PASSWORD), verify=SSL_VERIFY)
return r.json()

def get_results(url):
jsn = get_json(url)
if jsn.get('error'):
print "Error: " + jsn['error']['message']
else:
if jsn.get('results'):
return jsn['results']
elif 'results' not in jsn:
return jsn
else:
print "No results found"
return None

def display_all_results(url):
results = get_results(url)
if results:
return json.dumps(results, indent=4, sort_keys=True)

def main():
orgs = display_all_results(KATELLO_API + "organizations/")
for org in orgs:
print org

if __name__ == "__main__":
main()

我似乎缺少一个概念,因为当我打印 org 时,我得到每行的每个字符,例如

[




{







"
c
r
e
a
t
e
d
_
a
t
"

它一直这样做到最后的]

我还尝试打印 org['name'] ,它会抛出 TypeError: listindexsmust be integers, not str Python 错误。这让我认为 org 被视为一个列表而不是字典,我认为这是由于 [{...}] 格式造成的。

我缺少什么概念?

编辑:解释为什么我没有得到这个:我正在使用 Red Hat Satellite API Guide 中的脚本。我用它来构建另一个脚本。我基本上是边走边学。

最佳答案

display_all_results 返回一个字符串,因为您正在执行 json.dumpsjson.dumps(results, indent=4, sort_keys=True) 中,它将字典转换为字符串(您可以从 r.json() 中获取该字典get_json 函数)

然后,您最终会迭代 main 中该字符串的字符,并且每行看到一个字符

只需从 display_all_results 返回结果,代码就会按预期工作

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

关于python - 从列表中打印字典会在每一行上放置一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56675692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com