2016-02-04 1 views
0

j'ai une longue chaîne comme ci-dessous qui Im essayant de mettre en forme aswel l'alignant avec les normes PEPs'il vous plaît me suggérer les meilleures pratiques en piqûre valeur formating

'http://abc/api/run=1&'+ \ 
      'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'+ \ 
      '&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date) 

Mais couru vers la sortie comme être ce

'http://abc/api/run=1&actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]&tripOrigin=2311443&tripDestination=123445667' 

attendant le formatage se produisent tout le {0}, {1}, {2}, {3}, {4} et {5}

Répondre

1

Vous devez échapper aux accolades qui ne correspondent pas à la mise en forme des espaces réservés.

Par exemple: Cette

'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"} 

devrait ressembler à:

'actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}} 

Alors:

>>> print 'http://abc/api/run=1&actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}},{{"query":"hotels-{1}-{3}-{4}-1-1_0-"}},{{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}}]& 
tripOrigin={0}&tripDestination={1}'.format(999,999,999,999,999,999) 

http://abc/api/run=1&actionData=[{"query":"air-999-999-999--1-0-0-E-111--"},{"query":"hotels-999-999-999-1-1_0-"},{"query":"air-999-999-999--1-0-0-E-111--"}]&tripOrigin=999&tripDestination=999 
+0

Merci Juras ource. Échappement des accolades fait l'affaire :) –

+0

Vous êtes les bienvenus – jurasource

1

ne pas utiliser concaténation: utiliser la jonction implicite qui se produit à l'intérieur entre parenthèses .

my_string = (
    'http://abc/api/run=1&' 
    'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]' 
    '&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date) 
) 
+0

salut @ Daniel: se retrouver avec cette KeyError d'erreur: « » requête "' –

1

Surround la chaîne entre parenthèses, vous aussi aurez pas besoin + et \ plus:

('http://abc/api/run=1&' 
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]' 
'&tripOrigin={0}&tripDestination={1}').format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date) 
1
my_string = (
    'http://abc/api/run=1&' 
    'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},' 
    '{"query":"hotels-{1}-{3}-{4}-1-1_0-"},' 
    '{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]' 
    '&tripOrigin={0}&tripDestination={1}' 
).format(origin.get('vcid'), destination.get('vcid'), 
     onward_f_date, check_in_date, check_out_date, return_f_date)