J'essaie de chercher une page qui a de nombreuses URL et d'autres choses tout en une seule ligne dans un texte brut comme i fatigué p> Le contenu d'impression me donnera le "link_url": sortie
Mais je dois trouver p> et sortie uniquement link1 et link2 dans un fichier comme p>
5 Réponses :
Essayez
Si c'est une chaîne et non un objet JSON, vous pouvez le faire, même si c'est un peu hacky: qui donne: p> Bien que je pense que mais si c'est un JSON qui ressemble à: p> @ al76 code> La réponse est plus élégante pour cela. p> import json
s1 = "[{ \"link_url \": \"http://www.example.com/link1?site=web \", \"mobile_link_url \": \"http://m.example.com/episode/link1?site=web \"}, { \"link_url \": \"http://www.example.com/link2?site=web \", \"mobile_link_url \": \"http://m.example.com/episode/link2?site=web \"} ]"
data = json.loads(s1)
links = [y for x in data for y in x.values()]
for link in links:
print(link)
Le code ci-dessous pourrait être ce dont vous avez besoin.
import re urls = '''"link_url":"http://www.example.com/link1?site=web","mobile_link_url":"http://m.example.com/episode/link1?site=web" link_url":"http://www.example.com/link2?site=web","mobile_link_url":"http://m.example.com/episode/link2?site=web"''' links = re.findall(r'http://www[a-z/.?=:]+(link\d)+', urls) print(links)
S'il s'agit d'une API JSON, vous pouvez utiliser Vous n'avez pas non plus besoin d'utiliser regex pour quelque chose de si simple, Python est livré avec un analyseur d'URL hors de la boîte. P> Ainsi fournie votre réponse est quelque chose comme P> intervention.json () code> pour obtenir un dictionnaire Python, comme .text code> vous donnera la réponse comme une chaîne longue. . from urllib.parse import urlparse
import requests
response = requests.get("http://api.example.com/?callback=jQuery112")
for urls in response.json():
print(urlparse(url["link_url"]).path.rsplit('/', 1)[-1])
Je ne pense pas que c'est un fichier JSON approprié depuis sa présentation, aucun objet JSON n'a pu être décodé ne fonctionne également pas avec JSON Embellir. Mais quand essayez javascript embellir, il fonctionne
Devez-vous transmettre ce "callback" param? Avez-vous essayé d'appeler l'API sans cela? Parfois, cela indique à l'API d'essayer de retourner une réponse JSONP plutôt que de renvoyer des données JSON brutes. Juste une spéculation :) Cela expliquerait également pourquoi l'embellissement JavaScript fonctionne (JSONP renvoie JavASCIPT).
urls=""" "link_url":"http://www.example.com/link1?site=web","mobile_link_url":"http://m.example.com/episode/link1?site=web" link_url":"http://www.example.com/link2?site=web","mobile_link_url":"http://m.example.com/episode/link2?site=web" """
p = [i.split('":')[1] for i in urls.replace(' ', ",").split(",")[1:-1]]
#### Output ####
['"http://www.example.com/link1?site=web"',
'"http://m.example.com/episode/link1?site=web"',
'"http://www.example.com/link2?site=web"',
'"http://m.example.com/episode/link2?site=web"']
*Not as efficient as regex.
Quelles sont les données en réponse? Il n'est pas effacé, je suis en fait derrière le proxy, je ne peux pas l'exécuter moi-même
Est-ce une API JSON? Votre réponse semble avoir des fautes de frappe, pouvez-vous nous donner un meilleur exemple?
Bonjour pourriez-vous nous donner une explication claire de ce que vous voulez poser avec un exemple.