Durchlaufen und drucken von JSON-Objekten in Python
Ich habe eine Google-Tabelle, die ich würde gerne in Python, dann verarbeiten Sie durch JSON. Es ist auf halbem Weg zu arbeiten, und nach der Suche durch Stackoverflow für mehrere Stunden, ich denke, es ist an der Zeit, eine Frage zu stellen.
Beispielsweise das format der JSON-Datei sieht wie folgt aus (von https://developers.google.com/gdata/docs/json).
{
"version": "1.0",
"encoding": "UTF-8",
"feed": {
"xmlns": "http://www.w3.org/2005/Atom",
"xmlns$openSearch": "http://a9.com/-/spec/opensearchrss/1.0/",
"xmlns$gd": "http://schemas.google.com/g/2005",
"xmlns$gCal": "http://schemas.google.com/gCal/2005",
"id": {"$t": "..."},
"updated": {"$t": "2006-11-12T21:25:30.000Z"},
"title": {
"type": "text",
"$t": "Google Developer Events"
},
"subtitle": {
"type": "text",
"$t": "The calendar contains information about upcoming developer
conferences at which Google will be speaking, along with other
developer-related events."
},
"link": [{
"rel": "...",
"type": "application/atom+xml",
"href": "..."
},{
"rel": "self",
"type": "application/atom+xml",
"href": "..."
}],
"author": [{
"name": {"$t": "Google Developer Calendar"},
"email": {"$t": "[email protected]"}
}],
"generator":{
"version": "1.0",
"uri": "http://www.google.com/calendar",
"$t": "Google Calendar"
},
"openSearch$startIndex": {"$t": "1"},
"openSearch$itemsPerPage": {"$t": "25"},
"gCal$timezone": {"value": "America/Los_Angeles"},
"entry": [{
"id": {"$t": "..."},
"published": {"$t": "2006-11-12T21:25:30.000Z"},
"updated": {"$t": "2006-11-12T21:25:30.000Z"},
"category": [{
"scheme": "...",
"term": "..."
}],
"title":{
"type": "text",
"$t": "WebmasterWorld PubCon 2006: Google Developer Tools in General"
},
"content": {
"type": "text",
"$t": "Google is sponsoring at
<a href=\"http://www.pubcon.com/\">WebmasterWorld PubCon 2006</a>.
\n Come and visit us at the booth or join us for an evening demo
reception where we will be talking \"5 ways to enhance your website
with Google Code\". \n After all, \n it is Vegas, baby! See you soon."
},
"link": [{
"rel": "alternate",
"type": "text/html",
"href": "...",
"title": "alternate"
},{
"rel": "self",
"type": "application/atom+xml",
"href": "..."
}],
"author": [{
"name": {"$t": "Google Developer Calendar"},
"email": {"$t": "[email protected]"}
}],
"gd$transparency": {"value": "http://schemas.google.com/g/2005#event.opaque"},
"gd$eventStatus": {"value": "http://schemas.google.com/g/2005#event.confirmed"},
"gd$comments": {"gd$feedLink": {"href": "..."}},
"gCal$sendEventNotifications": {"value": "true"},
"gd$when": [{
"startTime": "2006-11-15",
"endTime": "2006-11-17",
"gd$reminder": [{"minutes": "10"}]
}],
"gd$where": [{"valueString": "3150 Paradise Road,Las Vegas,NV 89109"}]},
}]
}
}
Mein Python-code ist wie folgt:
import requests, json
r = requests.get('link-to-google-spreadsheet-json')
j = r.json()
Testen die top-level-Hierarchie der JSON-Datei Ausgänge wie folgt:
>>> print j["version"]
1.0
Aber der Iteration über die Objekte, etwa so:
for feed in j["feed"]:
for entry in feed["entry"]:
for title in entry["title"]:
print title["$t"]
print
print
Gibt mir die folgende Fehlermeldung:
Traceback (most recent call last):
File "<console>", line 2, in <module>
TypeError: string indices must be integers.
Klingt es wie es will, so drucken Sie einzelne Buchstaben aus dem string, vorausgesetzt ich gebe die index-Nummer. So wie ich das Parsen der JSON -, so dass es korrekt Ausgänge, was ich will (z.B. feed -> Eintrag -> Titel> $t)?
Ich völlig ignoriert, dass >_> habe ich gelöscht meine vorherigen Kommentare.
InformationsquelleAutor AAA | 2012-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
j['feed'] ist ein Wörterbuch. Ihr code sollte wie folgt Aussehen:
Wenn Sie Durchlaufen j['feed'], die Sie iterieren über die Schlüssel: Kategorie, aktualisiert, ...
InformationsquelleAutor sneawo
feed
undtitle
sind Wörterbücher nicht Listen, damit Sie sollte nicht müssen for-Schleife über Sie. Benötigen Sie nur eine for-Schleife, die für die entry-Liste.InformationsquelleAutor Lycha