• 关于Python编码,超诡异的,我也是醉了


      Python的编码问题,真是让人醉了。最近碰到的问题还真不少。比如中文文件名.csv 。python对外呈现不一致啊,感觉好不公平。

      没图说个JB,下面立马上图。

       

      我早些时候的其他脚本,csv都是中文命名的,都没有出现这些问题。现在都还能跑。

      

      再次回头看以前的脚本,以前的脚本是这么写的

          with open(parent_DIR + r" estdata\投资申请.csv","rb+") as csvfile:​

          问题1已解决。

      更离谱的是同一段代码往同一个csv文件写中文内容,前面的竟然能正确显示,后面的竟然是乱码!!!

      

      问题2,已解决。解决方案如下:

      根据这个,修改过后的代码如下:

    def execRequestTestCase(url,args,requestmethord ="post"):
        import copy
    
        testCase = args["testCase"]
        assertion = args["assertion"]
        del args["testCase"]
        del args["assertion"]
        testData =copy.deepcopy(args)
    
        if "post" in requestmethord:
            testResultDetail =requests.post(url,args).content
        if "get" in requestmethord:
            if args.has_key("id"):
                url =url + args["id"]
                del args["id"]
            argsstr = ""
            if len(args):
                argsstr = "?"
            for k,v in args.items():
                argsstr =argsstr + k + "=" + v + "&"
            argsstr = argsstr[0:len(argsstr)-1]
            testResultDetail =requests.get(url + argsstr).content
            testCase =testCase.decode("GBK")
        testResult ="FALSE"
        if assertion in testResultDetail:
            testResult ="PASS"
        return dict(testCase =testCase ,testData =testData, assertion = assertion,testResultDetail=testResultDetail,testResult=testResult)

      原来还和get或post 有关,原来代码未走get的逻辑时一切正常,当走过get的逻辑后,汗,操作系统的编码竟然被更改了。。哎呦,这超诡异的。

      最近,我读过一篇文章讲述python编码的。讲得很清楚,http://www.ituring.com.cn/article/61192

  • 相关阅读:
    Leetcode 449. Serialize and Deserialize BST
    机器学习入门(1)------python基础
    Leetcode 23. Merge k Sorted Lists
    mysql explain执行计划详解
    ubuntu下安装chrome浏览器证书
    ubantu下配置android开发环境(Ubuntu 12.04.4 LTS x64 dell 3420)
    system v信号量的深入剖析
    AI文件格式解析
    STC12LE5A60S2第二串口出现的奇葩问题
    ZIGBEE官方协议栈 SampleApp工程DemoEB项目 运行机制详解
  • 原文地址:https://www.cnblogs.com/yicaifeitian/p/5359965.html
Copyright © 2020-2023  润新知