Ich habe die folgende JSON als Eingabe (die von https://openlibrary.org/api/books?bibkeys=ISBN:039397281X&format=json abgerufen werden kann):jq Syntaxfehler Extrahieren Schlüssel mit Doppelpunkt in seinem Namen
{
"ISBN:039397281X": {
"bib_key": "ISBN:039397281X",
"preview": "borrow",
"thumbnail_url": "https://covers.openlibrary.org/b/id/7890978-S.jpg",
"preview_url": "https://archive.org/details/isbn_9780393972818",
"info_url": "https://openlibrary.org/books/OL348852M/Don_Quijote"
}
}
Mein Ziel die preview_url
zu extrahieren ist - also für die Eingabe oben, um die Ausgabe https://archive.org/details/isbn_9780393972818
zu erhalten.
ich zur Zeit mit dem folgenden:
curl 'https://openlibrary.org/api/books?bibkeys=ISBN:039397281X&format=json' \
| jq -r '.ISBN:039397281X' | jq -r '.preview_url'
Dies ist jedoch sendet einen Fehler:
jq: error: syntax error, unexpected ':', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
.ISBN:039397281X
jq: 1 compile error
Wie kann es gelöst werden?
Die Änderungen, die ich an der Frage vorgenommen habe, sollen ein Beispiel dafür sein, wie ähnliche Fragen in Zukunft gestellt werden sollten: Es gibt eine englischsprachige Beschreibung dessen, was Sie tun möchten; Code, der kopiert und eingefügt werden kann, um das Problem zu reproduzieren; die Eingabedaten (oder eine Teilmenge, die ausreicht, um das Problem zu testen) sind in der Frage selbst vorhanden (so dass die Frage und ihre Antworten auch dann Sinn ergeben, wenn die Verbindung unterbrochen wird oder sich der Inhalt dahinter ändert) –
Related: [jq - Syntax, wenn im Schlüssel Platz ist] (https://stackoverflow.com/questions/33700103/syntax-when-there-is-a-space-in-the-key); oder [JQ Parsing Strings mit '-'] (https://stackoverflow.com/questions/34880288/jq-parsing-strings-with) –