<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "address": { "@type": "PostalAddress", "addressLocality": "3rd Floor, Sharda Arcade, Pune Satara Road, Bibvewadi", "postalCode": "411016 ", "streetAddress": " Pune/Maharashtra " }, "name": "Banctec Tps India Pvt Ltd", "telephone": "(020) " } </script>
4 Réponses :
Utilisez le package JSON:
print (jsonObj['address']) {'@type': 'PostalAddress', 'addressLocality': '3rd Floor, Sharda Arcade, Pune Satara Road, Bibvewadi', 'postalCode': '411016 ', 'streetAddress': ' Pune/Maharashtra '}
Utilisez la propriété string code> pour obtenir le texte de l'élément, vous pouvez l'analyser comme JSON.
links_dict = json.loads(links.string)
address = links_dict['address']
Hey Barmar, merci cela a fonctionné. La variable d'adresse est-elle un dictionnaire maintenant?
Oui, json.loads () code> charge l'objet entier dans le dictionnaire.
Vous pouvez faire print (links_dict) code> pour voir le tout.
chaîne de données formatées JSON en Python, désérialisez celle avec json.loads () après cela, p>
Les balises de script souvent souvent contiennent beaucoup de fluff JavaScript. Vous pouvez utiliser RegEx pour isoler le dictionnaire:
scripts = s.findAll('script') for script in scripts: if '@context' in script.text: # Extra step to isolate the dictionary. jsonStr = re.search(r'\{.*\}', str(script)).group() # Create dictionary dct = json.loads(jsonStr) print(dct['address'])
Qu'est-ce que vous avez essayé exactement et qu'est-ce qui a échoué?
Il devrait être
soupe.find ("script"). Chaîne code>
Je suis nouveau à Python, puisque c'était un dict, j'ai essayé de faire une liste alors accédant à des valeurs clés, j'ai essayé d'accéder directement mais cela n'a pas fonctionné