2010-11-08 5 views
1

Je reçois du contenu de l'API de Twitter, et j'ai un petit problème, en effet je reçois parfois un tweet se terminant par une seule barre oblique inverse. Plus précisément, j'utilise simplejson pour analyser le flux Twitter. Comment puis-je échapper à ce backslash? D'après ce que j'ai lu, une telle chaîne brute ne devrait pas exister ... Même si j'ajoute une barre oblique inverse (avec deux en fait) je reçois toujours une erreur comme je le soupçonnais (puisque j'ai un nombre impair de barres obliques inverses[Python] Comment gérer une chaîne se terminant par une barre oblique inverse?

Une idée? Je peux aussi oublier ces tweets, mais je suis toujours curieux à ce sujet.

Merci:)

+6

Un exemple de la réponse que vous obtenez qui cause le problème serait utile. – rossipedia

+0

tzot le mettre à droite, «r» non \ problème "+" \\ "' est un bon moyen d'obtenir: pas \ problème \ – n611x007

Répondre

1

Préfixer la chaîne avec r (signifie « brute ») échapperont à tous les personnages à l'intérieur de la chaîne. Par exemple:

print r'\b\n\\'

volonté sortie

\b\n\\

Ai-je bien compris la question?

1

Vous pouvez utiliser des chaînes brutes par préfixer un r (donc rien ne doit être échappé) à la chaîne ou re.escape().

Je ne suis pas vraiment sûr de ce dont vous avez besoin vu que je n'ai pas vu le texte de la réponse. Si aucune des méthodes que vous proposez vous-même ou obtenez d'ici ne fonctionne, vous devrez peut-être oublier ces tweets.

0

À moins que vous ne mettiez à jour votre question et ne reveniez avec un vrai problème, j'affirme que vous n'avez aucun problème, sauf la confusion.

Vous obtenez la chaîne de l'API Tweeter, ergo la chaîne n'apparaît pas dans votre code . Les "chaînes brutes" n'existent que dans votre code, et ce sont des "chaînes brutes" dans le code qui ne peuvent pas se terminer par une barre oblique inverse.

Considérez ceci:

def some_obscure_api(): 
    "This exists in a library, so you don't know what it does" 
    return r"hello" + "\\" # addition just for fun 

my_string = some_obscure_api() 
print(my_string) 

Voir? my_string se termine heureusement dans un backslash et votre code ne s'en soucie pas.

Questions connexes