2016-10-23 1 views
0

Ich habe dieses Problem in meinem Code und ich kann nicht lösen, da es in Version 2.7, aber 3.4 bereits dieser Nachricht funktioniert.Python 3.x - TypeError: nicht alle Argumente während der String-Formatierung konvertiert

In meinem Code ich habe Methoden: Methode 1

def getFacebookPageFeedData(page_id, access_token, num_statuses): 
parameters = "/?access_token=%s" % (access_token, num_statuses) 

Methode 2

def scrapeFacebookPageFeedStatus(page_id, access_token): 

In diesem zweiten Verfahren die ich habe:

statuses = getFacebookPageFeedData(page_id, access_token, 100) 

Aber jedes Mal, wenn ich laufen die Code wird dieser Fehler angezeigt:

parameters = "/?access_token=%s" % (access_token, num_statuses) 
TypeError: not all arguments converted during string formatting 

Was soll ich mit der Version 3.4 tun, die diesen Parameter durchläuft?

+2

Der String? hat ein '% s', und du interpolierst zwei Objekte. Haben Sie die Fehlermeldung gelesen und sehen Sie sich den Code an, auf den sie hinweist? – TigerhawkT3

+0

Ja. Es zeigt auf parameters = "/? Access_token =% s"% (access_token, num_statuses) –

+0

Das stimmt. Hast du diesen Code durchgesehen? Wissen Sie was das bedeutet? Hast du den Fehler Google? – TigerhawkT3

Antwort

1

Sie sollten so viele %s als Variablen einfügen, die Sie in die Zeichenfolge einfügen möchten. Ich glaube, Sie wollen nur das Zugriffstoken einzufügen:

parameters = "/?access_token=%s" % (access_token) 

Wenn Sie die Ergebnisparameter gedruckt wäre:

/access_token = x (wobei x die Variable access_token)

0

Diese Ausnahme wird in Python 2.x und Python 3.x ausgelöst werden.

Wenn Sie nur ein einziges %s in der Zeichenfolge haben, dann können Sie nur noch ein einziges Argument nach den % der Zeichenfolge folgt:

print('Hello %s' % 'world') 

Auf der anderen Seite, wenn Sie zwei haben folgende Argumente der Zeichenfolge, wie Sie tun, müssen Sie zwei String-Formatierungszeichen (wie %s) in der Zeichenfolge:

print('%s %s' % ('Hello', 'world')) 

Basierend auf ein wenig googeln, es sieht aus wie das, was Sie in Ihrem Fall brauchen, ist:

parameters = "/?access_token=%s&limit=%s" % (access_token, num_statuses) 

Ein wirklich großes Stück Studienmaterial für über String Formatierung Lernen kann here finden. Und natürlich sind auch the Python docs ein guter Startpunkt.

Verwandte Themen