zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    xml根据属性去重。如csprj去重
    table中td的内容换行。
    基于jq的表单填充
    c#包含类文件到csprj中
    t4 根据表名数组生成实体
    js中找string中重复项最多的字符个数
    一步步配置cordova android开发环境
    .net framework卸载工具
    Sql Server查询视图和表
    DbHelper.ttinclude 更新,查询视图和表
  • 原文地址:https://www.cnblogs.com/yicaifeitian/p/5359965.html
Copyright © 2011-2022 走看看