Python数据结构中包含中文时在Windows下正常输出

def obj2str( obj,with_endline= True ): 
    ‘‘‘
      为了使包含中文的数据结构能够在win32下面正常打印出字符串,将所有的字符串转换为unicode。
    ‘‘‘
    new_str =u‘‘
    if ‘nt‘ == os.name:
        if hasattr(obj, "__dict__") :
            new_str+= "{"
            for kev,value in obj.iteritems():
                new_str += obj2str(kev) + ":" + obj2str(value) + ","
            if(len(obj)): 
                new_str= new_str[:-1] +"}"
            else:
                new_str +="}"
        elif  hasattr(obj,"__iter__"):
            new_str += "["
            for item in obj:
                new_str += obj2str(item) + ","
            if(len(obj)): 
                new_str= new_str[:-1] +"]"
            else:
                new_str +="]"
        elif type(obj)==str:
            new_str += ‘u"‘ + obj.decode(‘utf-8‘) +‘"‘
        else:
            new_str += str( obj)
    return str(new_str)
时间: 2024-08-26 19:36:14

Python数据结构中包含中文时在Windows下正常输出的相关文章

Python列表中包含中文时输出十六进制转中文的小方法

现象:列表中的中文打印出来后显示为十六进制 >>> lt=['大神','zhzhgo'] >>> print lt ['\xb4\xf3\xc9\xf1', 'zhzhgo'] >>> 首先需要明确,这不是乱码,这是 unicode 字符串在内存中的形式,python 在命令行界面输出的数据,如果不是ASCII码,则会以十六进制形式输出. 如何使打印出来的结果显示为中文呢?解决办法如下: #-*-coding:utf-8-*- lt=["大神

Python的raw_input语句包含中文,在Windows环境CMD中显示乱码的解决方法

Python的raw_input语句中如果包含中文,在Windows环境CMD中执行时会显示乱码: 由于raw_input语句不支持unicode显示,在中文字符串前加u会报错: 解决办法: 在语句中进行强制的编码转换,格式如下: shuzi = raw_input (unicode('请输入日期:','utf-8').encode('gbk'))

当有超过64个逻辑cpu时,Windows 下Oracle db 实例启动(startup)时会hang(挂起)

Bug 9772171 - Database startup hangs on Windows when machine has more than 64 cores [ID 9772171.8] 该文章已经说明:在11.2.0.2 已经fix(解决)该bug. 而现在11gR2版本已经推出了11.2.0.4,并且11.2.0.4是最终的11gR2版本.所以我们推荐安装11.2.0.4 外加最新的psu 最新的psu可以 查询这个文章获得:Oracle Database, Networking 

用Python写脚本:通过ssh在Windows下批量管理Linux

对于超过10台以上的linux服务器,就需要考虑如何进行批量管理了. 我了解的通常的方法有以下几种: 一:在linux系统下,编写except脚本,通过ssh远程执行命令.上传下载文件等. 二:使用SecureCRT的ChatWindow功能批量发送相同命令到某一批服务器. 三:用puppy等工具管理. 其中方法一没什么问题,被管理服务器也不需要安装任何特殊程序或服务,但就是需要在linux下进行操作,日常办公PC可能大多数装的是Windows,这样可能要在虚拟机中进行操作,不太方便. 方法二:

EasyUI 1.4.4 DataGrid(大数据量) bufferview滚动时不加载下一页数据解决方案

在使用Easyui DataGrid 过程中,发现若单页数据量超过300,IE浏览器加载速度很慢.也通过网上找寻了很多解决方案,最典型的就是去掉datagrid的自动列宽以及自动行高判断. 1.解决自动列宽:  设定列宽度可解决. 2.解决自动行高 : 注释掉下面的代码. 1 function _3e(_44,_45){ 2 //for(var i=0;i<_45.length;i++){ 3 ////var tr1=$(_44[i]); 4 ////var tr2=$(_45[i]); 5 /

Python jupuyter 的安装与使用(windows下)

1.win+R  cmd 打开命令窗 2.pip install jupyter pip安装jupyter 3.安装好后 执行jupyter的启动命令: jupyter notebook --ip=0.0.0.0 --port=8000 表示监听在所有网卡地址上,监听的端口是8000 4.打开后将浏览器地址中的0.0.0.0改为127.0.0.1 5.更改默认路径, 配置 Jupyter notebook  jupyter notebook --generate-config 运行后自动生成了一

python中包含UTF-8编码中文的列表或字典的输出

在python 下面一个包含中文字符串的列表(list)或字典,直接使用print会出现以下的结果: >>> dict = {"asdf": "我们的python学习"} >>> print dict {'asdf': '\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84python\xe5\xad\xa6\xe4\xb9\xa0'} 在输出处理好的数据结构的时候很不方便,需要使用以下方法进行输出: >

SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼. 解决办法: 第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的  @RequestMappering 注解中进行编码设置,如下所示: @RequestMapping(value = "/queryUserById&qu

Windows 下让 Python 多个版本共存(支持 pip)

转载自 http://blog.kgzx.net/index.php/archives/40/ 因为类库兼容性的关系,写实际项目时都是用 Python 2,但自己试验性的写点小东西还是喜欢用 Python 3在这记录一下在 windows 下让这两个版本共存的配置步骤 在官网下载两个版本的 exe 文件并安装.因为我主要用 v2,所以把它放在 后面 安装.这样在调用 python 命令时,默认执行的就行 v2 版本的 进入 v3 的安装文件夹,把 python.exe 和 pythonw.exe