alle,Python Referenzierung json Array
Ich habe ein Skript Ich baue alle offenen Pull-Anforderungen zu finden und die sha Hash zu vergleichen, aber ich kann nicht scheinen, um sie zu finden ....
for repo in g.get_user().get_repos():
print (repo.full_name)
json_pulls = requests.get('https://api.github.com/repos/' + repo.full_name + '/pulls?state=open+updated=<' + str(cutoff_date.date())+ '&sort=created&order=asc')
if (json_pulls.ok):
for item in json_pulls.json():
for c in item.items():
#print(c["0"]["title"])
#print (json.dumps(state))
print(c)
die Code-Zyklen durch die vorhandenen repos und die Liste der Pull-Anforderungen und ich bekomme die Ausgabe:
Aber ich kann nicht für das Leben von mir nicht herausfinden, wie man Koll t einzelne Felder ...
Ich habe versucht, die Referenzen mit:
print(c['title'])
- den Fehler nicht definiert istprint(c['0']['title'])
-a Rohr Fehler
was ich suche ist ein einfache Liste für jede Anfrage ....
title
id
state
base/sha
head/sha
Kann jemand bitte weisen Sie darauf hin, was ich falsch mache, wenn ich auf die JSON-Elemente in meinem Python-Skript verweise, da es mich verrückt macht.
Der vollständige Code wie mit Ihrer Hilfe natürlich ...:
# py -m pip install <module> to install the imported modules below.
#
#
# Import stuff
from github import Github
from datetime import datetime, timedelta
import requests
import json
import simplejson
#
#
#declare stuff
# set the past days to search in the range
PAST = 5
# get the cut off date for the repos 10 days ago
cutoff_date = datetime.now() - timedelta(days=PAST)
#print (cutoff_date.date())
# Repo oauth key for my repo
OAUTH_KEY = "(get from github personal keys)"
# set base URL for API query
BASE_URL = 'https://api.github.com/repos/'
#
#
# BEGIN STUFF
# First create a Github instance:
g = Github(login_or_token=OAUTH_KEY, per_page=100)
# get all repositories for my account that are open and updated in the last
no. of days....
for repo in g.get_user().get_repos():
print (repo.full_name)
json_pulls = requests.get('https://api.github.com/repos/' + repo.full_name
+ '/pulls?state=open+updated=<' + str(cutoff_date.date())+
'&sort=created&order=asc')
if (json_pulls.ok):
for item in json_pulls.json():
print(item['title'], item['id'], item['state'], item['base']['sha'],
item['head']['sha'])
Die Repo-Website ist eine einfache Website, mit zwei repos und 1 oder 2 Pull-Anforderungen gegen spielen.
Die Idee des Skripts, wenn es fertig ist, es durch alle Repos zu durchlaufen, finden Sie die Pull-Anfragen, die älter als x Tage sind und öffnen, sucht den sha für den Zweig (und sha für die Master-Zweige), zu überspringen ..... die Zweige entfernen), die nicht Zweige meistern sind, so alten Code und ziehen Anfragen entfernen der repos zu halten ordentlich ....
Könnten Sie die Logik vor der for-Schleife auch posten (siehe https://stackoverflow.com/help/mcve), so dass man einfach kopieren kann, schnipste und testet es? –
Dump den Screenshot. Geben Sie uns ein testbares Paar von Beispieleingaben. – tdelaney
Es ist nur 'Element [" Titel "]', etc ... – tdelaney