2016-04-15 16 views
0

Ich benutze Python 2.7. Ich habe eine dreifache Anführungszeichenfolge, der ich 4 Variablen hinzufügen möchte. Diese Zeichenfolge wird dann in einer Postanforderung verwendet, die von unserer REST-API verarbeitet wird. Unterhalb der String ist, wird er verkürzt bc es über 500 Zeile lang ist:python triple quote string mehrere Variablen hinzufügen

curDate = str(datetime.datetime.now().year)+"/"+str(datetime.datetime.now().month)+"/"+str(datetime.datetime.now().day)\ 
      +" "+str(datetime.datetime.now().hour)+":"+str(datetime.datetime.now().minute)+":"\ 
      +str(datetime.datetime.now().second) 

... 

payload = ''' 
    ... 
"CaptureTime": %(captureTime), 
    ... 
"dataTime1": %(dataTime1) 
    ... 
"dataTime2": %(dataTime2) 
    ... 
"dataTime3": %(dataTime3) 
    ... 
"dataTime4": %(dataTime4) 
    ... 
''' % dict(captureTime=curDate, dataTime1=curDate, dataTime2=curDate, dataTime3=curDate, dataTime4=curDate) 

Dies ist der Fehler Ich erhalte:

Traceback (most recent call last): 
    File "/xxx/xxxx/xxxxxx/Rest/Post.py", line 6130, in <module> 
    ''' % {'captureTime':curDate, 'dataTime1':curDate, 'dataTime2':curDate, 'dataTime3':curDate, 'dataTime4':curDate} 
ValueError: unsupported format character ',' (0x2c) at index 204 

Danke für irgendwelche und alle Hilfe!

+0

Sie bewerten "datetime.datetime.now()" mehrmals ohne Grund. Es gibt ein 'namedtuple' zurück. Einfach einmal bewerten und benennen und effizient machen. –

Antwort

2

Die Proble wird Sie verwenden:

%(captureTime), 

Statt die Art der Qualifikation (ich nehme an, Sie versuchen, als String zu qualifizieren):

%(captureTime)s, 

Und so wird das Komma nicht als Typ anerkannt Qualifier für%.