我正在编写Python脚本以使用键来获取API并获取json数据,然后它应该解析特定值的json数据并使用这些值它将在for循环中再次访问API以获取另一个json数据,然后解析它并邮寄给关心的人。这是我的Python项目。
这是我在@skagra_dragneel的帮助下得到的。我一直在阅读有关Python和json解析的多篇帖子,但它们都没有工作。
import ConfigParser
import json
import requests
from pprint import pprint
import urllib
# Read the credentials from File (Not Using those here in raw format)
Config = ConfigParser.ConfigParser()
Config.read('C:/Users/admin/source/repos/MyProject/MyProject/config.ini')
Username = Config.get('credentials', 'Username')
Password = Config.get('credentials', 'Password')
# Get Request for the json output
def apicall():
request_url = 'https://example.com/admin/api/v1/list'
headers = {'X-ApiKeys' : 'accessKey=' + Username + '; secretKey=' + Password}
result = requests.get(request_url,headers=headers).json()
print result;
apicall()
以下是运行时的输出。
[{u'size': u'72980725', u'status': u'ready', u'repo_id': u'abc', u'name': u'repo1', u'created_at': u'2018-03-08T10:03:36.965Z', u'updated_at': u'2018-03-10T12:56:40.294Z', u'platform': u'Docker', u'score': u'0.0', u'number_of_vulnerabilities': u'0', u'id': u'yyyy', u'digest': u'sha256:xxxx', u'repo_name': u'repo1'}, {u'size': u'67191884', u'status': u'ready', u'repo_id': u'xyz', u'name': u'repo2', u'created_at': u'2018-03-08T09:56:16.554Z', u'updated_at': u'2018-03-10T12:09:27.963Z', u'platform': u'Docker', u'score': u'6.0', u'number_of_vulnerabilities': u'18', u'id': u'-xyz', u'digest': u'sha256:xxxx', u'repo_name': u'repo2'}]
在json验证器中粘贴输出时,它显示“Invalid Json”。知道如何完成这个项目吗?
编辑:我编辑了print语句,用于根据Python: json.loads returns items prefixing with 'u'从json输出中打印“id”值,但它只打印一个值而不是两个值。