TypeError:无法连接' str'和' dict'对象

时间:2014-10-29 13:54:24

标签: python python-2.7

我是该领域的新手,我想创建一个有用且快速处理的程序,并运行此脚本,我收到此错误,我无法收到此错误。

# -*- 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

2 个答案:

答案 0 :(得分:9)

错误消息应该是明确的,你不能使用+运算符来对字符串和字典求和,也许你想将字典转换为字符串。如果getFTPConfig('Pass')返回字典,那么

str(getFTPConfig('Pass'))+"whatever"

答案 1 :(得分:4)

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

我有一个名为&#34; web_response&#34;的字典,为了连接字典和字符串,我使用逗号&#34;,&# 34;

print "web_response=", web_response

<强>输出:

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