python - 从列表中打印字典在每一行放置一个字符
问题描述
是的,还有一个。我无法弄清楚问题是什么。我正在尝试遍历一个列表,该列表是 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: list indices must be integers, not str Python
错误。这让我认为这org
被视为一个列表而不是我认为这是由于[{...}]
格式的字典。
我错过了什么概念?
编辑:为什么我没有得到这个的解释:我正在使用Red Hat Satellite API Guide中的一个脚本,我用它来作为另一个脚本的基础。我基本上是边走边学。
解决方案
display_all_results
正在返回一个字符串,因为您正在执行json.dumps in json.dumps(results, indent=4, sort_keys=True)
,它将字典转换为字符串(您从函数r.json()
中获取该字典)get_json
然后,您最终遍历该字符串的字符 in main
,您会看到每行一个字符
相反,只需results
从返回display_all_results
,代码将按预期工作
def display_all_results(url):
#results is already a dictionary, just return it
results = get_results(url)
if results:
return results
推荐阅读
- laravel - Laravel,相关模型重新命名
- azure - 从 Azure Key Vault 读取时出现异常错误
- javascript - 如何将 1 个块 javascript 实验变成 2 个块,在第二个块的末尾显示数据,然后使用 MAMP 将数据保存到本地服务器
- python - Pytorch 速度比较 - GPU 比 CPU 慢
- xml - 在 postgresql 9.6 中优化批量 xml 数据插入
- php - 如何在包含的 PHP 文件中使用文件链接
- oracle - 启用约束 - 性能影响
- html - 使用内联 SVG 和文本进行锚点悬停
- reactjs - 在 React 中使用 onClick 更改元素内容
- crystal-reports - 多行字符串,设置在一行