6 Stimmen

Konvertierung von begrenzten Strings in hierarchisches JSON in Python

Wie konvertiere ich abgegrenzte Zeichenketten in ein hierarchisches JSON in Python? (Ich sah eine Lösung für eine ähnliche Frage in jQuery . Ich habe versucht, eine Python-Lösung für das gleiche zu finden).

Das Ziel ist es, ein hierarchisches JSON von Kategorien aus einer Reihe von URLs zu generieren, das wie folgt aussehen könnte:

sport/tennis/grandslams  
sport/chess  
sport/chess/players/men  
sport/tennis  
sport/cricket/stadiums  
sport/tennis/players

9voto

Cédric Julien Punkte 74976

Sie könnten dies mit Wörterbüchern erreichen:

initial = ["Fred-Jim","Fred","Fred-Jim-Bob", "Fred-Jim-Jack", "John", "John-Jim"]

result = {}

for item in initial:
    hierarchy = item.split('-')
    local_result = result
    for node in hierarchy:
        local_result = local_result.setdefault(node, {})

print result

Sie erhalten :

{
    'John': {
        'Jim': {}
    }, 
    'Fred': {
        'Jim': {
            'Bob': {},
            'Jack': {}
        }
    }
}

0voto

Silas Ray Punkte 25276

Suchen Sie nach json.dumps() von der json Modul?

bearbeiten: Oh, ok, jetzt verstehe ich dich. Vielleicht so etwas wie:

#paths is a list of strings containing the paths you are scraping from your site.
hierarchy = {}
for path in paths:
    cursor = hierarchy
    for part in path.split('/'):
        if part not in cursor:
            cursor[part] = {}
        cursor = cursor[part]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X