Joindre une variable entre guillemets simples en Python
Comment puis-je joindre une variable à l'intérieur d'un devis en python? C'est probablement très simple mais je n'arrive pas à l'obtenir! J'ai besoin d'encoder la variable term
. Term
est entré dans un formulaire par l'utilisateur et est transmis à une fonction où il est codé url term=urllib.quote(term)
. Si l'utilisateur a entré "apple computer" leur terme, après l'url de codage, il serait "apple%20comptuer". Ce que je veux faire, c'est le terme entourée par des guillemets simples avant de codage d'url, de sorte qu'il sera "apple computer "" puis, après avoir url-encoding "%23apple%20computer%23". J'ai besoin de passer le terme à une url et qu'il ne fonctionnera pas à moins que j'ai utiliser cette syntaxe. Des suggestions?
Exemple De Code:
import urllib2
import requests
def encode():
import urllib2
query= avariable #The word this variable= is to be enclosed by single quotes
query = urllib2.quote(query)
return dict(query=query)
def results():
bing = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%(query)s&$top=50&$format=json"
API_KEY = 'akey'
r = requests.get(bing % encode(), auth=('', API_KEY))
return r.json
OriginalL'auteur adohertyd | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Il y a trois façons:
de concaténation de chaîne
vieux style de mise en forme de chaîne
nouveau style de mise en forme de chaîne
OriginalL'auteur Hugh Bothwell
Vous pouvez simplement utiliser de la chaîne d'interpolation:
OriginalL'auteur Amber
Devrait être ce que vous cherchez.
OriginalL'auteur Jakob Bowyer
Quel est le problème avec l'ajout des guillemets simples après être codées dans l'url? Ou, juste avant de les ajouter à la main dans l'encodage de la fonction ci-dessus?
OriginalL'auteur sean
Je viens de tombé sur un code de le faire de cette façon:
(Dans ce cas
join()
utiliseterm
comme un séparateur de combiner tous les éléments qui ont été données dans l'objet iterable paramètre en une seule chaîne. Il n'y a que deux éléments, ils sont tout simplement enroulé autour d'une instance determ
.)Bien qu'il est tout à fait lisible, je le considère encore un hack et moins lisible que les autres options. Par conséquent, je recommande l'utilisation de chaîne de formatage, comme mentionné par d'autres:
OriginalL'auteur glaed
Pour ceux qui sont à venir ici pendant googler quelque chose comme "python surround chaîne" et consciencieux (ou juste à la recherche de la "meilleure" solution).
J'allais ajouter qu'il y a maintenant f-chaînes qui pour Python 3.6+ environnements sont beaucoup plus faciles à utiliser et à partir de ce que j'ai lu, ils disent qu'ils sont plus rapides.
J'ai décidé de faire un timeit de chaque méthode de "l'encerclement" une chaîne de caractères en python.
Résultats:
Bizarrement, je suis de la concaténation est plus rapide que les f-chaîne à chaque fois que je le lance, mais vous pouvez copier et coller pour voir si votre chaîne/utilisation fonctionne différemment, il peut aussi y avoir une meilleure façon de les mettre en timeit que
\
échapper à toutes les citations alors laissez-moi savoirOriginalL'auteur Jaba