2014-10-29 57 views
0

我是该领域的新手,我想创建一个有用且快速处理的程序,并运行此脚本,我收到此错误,并且可以没有得到这个错误。TypeError:无法连接'str'和'dict'对象

# -*- coding: cp1252 -*- 
import ftplib, os 
from ftplib import FTP 

def getFTPConfig(FTPLib): 
    if os.path.exists("./incluide/Config.json"): 
     with open("./incluide/Config.json") as ConfigFTP: 
      FTPConnect = ConfigFTP.read() 
    else: 
     os.system("title Config FTPConnect") 
     Host = raw_input("Enter the host: ") 
     Login = raw_input("Enter the login: ") 
     Pass = raw_input("Enter de password: ") 
     file = open("./incluide/Config.json", "wb") 
     file.write('''{"Host": "'''+Host+'''", 
"Login: "'''+Login+'''", 
"Pass: "'''+Pass+'''"}''') 
     file.close() 
     print "Successfully created" 
     os.system("FTP Session") 
    try: 
     FTPs = json.loads(FTPConnect) 
     return FTPs[FTPLib] 
    except: 
     return {} 

    with open("./incluide/Config.json") as ConfigFTP: 
     FTPConnect = ConfigFTP.read() 
     print('Conectando ao Servidor FTP... Espere um momento...') 

     FTPConnect = FTP(Host, Login, Pass) 

     File = "Session.py" #Arquivo a ser enviado 

     file = open('%s' %(File),'rb') 
     print('Conectado.') 

     print('Enviando arquivo... Espere um momento...') 

     session.storbinary('STOR %s' %(File), file) 

     print('Arquivo enviado!') 

     file.close() 
     session.quit() 

if __name__ == "__main__": 
    Title = "ERROR CONNECTING TO FTP" 
    os.system('cls');os.system('title '+Title) 
    FTPError = """ 
       """+Title+""" 
       Check the connection: 
       Host: """+getFTPConfig('Host')+""" 
       Login: """+getFTPConfig('Login')+""" 
       Pass: """+getFTPConfig('Pass')+"""""" 
    print (FTPError).center(80) 
    time.sleep(5) 

它发出此错误

Traceback (most recent call last): 
    File "C:\Users\Desktop\FTP\Session.py", line 59, in <module> 
    Pass: """+getFTPConfig('Pass')+"""""" 
TypeError: cannot concatenate 'str' and 'dict' objects 
+0

很明显,getFTPConfig('Pass')返回字典在这里...你尝试调试它吗? – 4rlekin 2014-10-29 13:58:56

回答

5

错误消息应该清楚,你不能使用+操作总结字符串和字典,也许你想在字典转换为字符串。如果getFTPConfig( '合格')返回一个字典,然后

str(getFTPConfig('Pass'))+"whatever" 
3
web_response = {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83} 

我命名 “web_response”

一本字典,对于 字典用绳子的级联我用 逗号 “”
print "web_response=", web_response 

输出:

web_response= {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83} 
相关问题