标签: pprint

有没有什么方法可以正确地打印有序的词典?

我喜欢Python中的pprint模块.我经常使用它进行测试和调试.我经常使用width选项来确保输出在我的终端窗口中很好地适应.

它一直运行良好,直到他们在Python 2.7中添加了新的有序字典类型(我非常喜欢的另一个很酷的功能).如果我试着漂亮地打印一个有序的字典,它就不能很好地显示出来.而不是将每个键值对放在它自己的行上,整个事物显示在一条长行上,它包含很多次并且难以阅读.

这里有没有人有办法让它打印得很好,就像旧的无序词典一样?如果我花了足够的时间,我可能会想出一些东西,可能使用PrettyPrinter.format方法,但我想知道这里是否有人知道解决方案.

更新:我为此提交了一份错误报告.您可以在http://bugs.python.org/issue10592上看到它.

python pretty-print ordereddictionary python-2.7 pprint

91
推荐指数
6
解决办法
5万
查看次数

使用日志记录打印pprint的输出

我想使用pprint的输出来显示复杂的数据结构,但我想使用日志模块而不是stdout输出它.

ds = [{'hello': 'there'}]
logging.debug( pprint.pprint(ds) ) # outputs as STDOUT
Run Code Online (Sandbox Code Playgroud)

python logging pprint

84
推荐指数
3
解决办法
3万
查看次数

多行的python pprint词典

我正试图获得一本字典的印刷品,但我没有运气:

>>> import pprint
>>> a = {'first': 123, 'second': 456, 'third': {1:1, 2:2}}
>>> pprint.pprint(a)
{'first': 123, 'second': 456, 'third': {1: 1, 2: 2}}
Run Code Online (Sandbox Code Playgroud)

我希望输出在多行上,如下所示:

{'first': 123,
 'second': 456,
 'third': {1: 1,
           2: 2}
}
Run Code Online (Sandbox Code Playgroud)

可以pprint这样吗?如果没有,那么哪个模块呢?我正在使用Python 2.7.3.

python dictionary python-2.7 pprint

61
推荐指数
3
解决办法
6万
查看次数

漂亮的印花namedtuple

我试图pprintpprint,但其产量只有一条线路,也没有多输出和无压痕.

python namedtuple pprint

23
推荐指数
2
解决办法
5358
查看次数

无法让pprint在clojure中工作

Noob问题,使用Win7 64位,Clojure 1.2.0,Java 1.6.0_22

当我从命令行启动clojure时,pprint函数很容易获得.

user=> pprint
#<pprint$pprint clojure.pprint$pprint@16dfa45>
user=> (pprint "hi")
"hi"
nil
user=>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从文件中使用pprint时,我收到错误.无论是否使用命名空间(ns ...:require ...)都会发生这种情况,如pprint文档中所示

clj文件如下:

(ns whatevah
(:require clojure.pprint))

(pprint "hi")
Run Code Online (Sandbox Code Playgroud)

错误如下:

C:\Users\mischw\code\Clojure>java -cp ";c:\users\mischw\code\clojure\classes\*;c:\Program Files (x86)\Java\SWT;c:\users\mischw\code\clojure\classes\bookcode\*" clojure.main swinglearn.clj 
Exception in thread "main" java.lang.Exception: Unable to resolve symbol: pprint in this context (swinglearn.clj:14)
... 21 more

Output completed (0 sec consumed) - Normal Termination
Run Code Online (Sandbox Code Playgroud)

我不明白这里发生了什么的一般想法.为什么一个工作而另一个工作?这与名称空间有关吗?类路径?其他一些简单的修复?显然noob问题,但我发现这发生在一堆例子中......即使导入/使用/ require/include它们似乎很简单,我也无法运行它们.

namespaces clojure classpath pprint

17
推荐指数
1
解决办法
7263
查看次数

解析json并搜索它

我有这个代码

import json
from pprint import pprint
json_data=open('bookmarks.json')
jdata = json.load(json_data)
pprint (jdata)
json_data.close()
Run Code Online (Sandbox Code Playgroud)

我该如何搜索它u'uri': u'http:

python string grep json pprint

17
推荐指数
2
解决办法
8万
查看次数

如何使用pprint格式化多行数据?

pprint的文档有点像砖墙.如果你打印一张地图,它会出现在一行上,如下所示:{:a "b", :b "c", :d "e"}.相反,我想像这样打印,可选择使用逗号:

{:a "b"
 :b "c"
 :d "e"}
Run Code Online (Sandbox Code Playgroud)

如何用pprint做到这一点?

clojure pprint

16
推荐指数
2
解决办法
3355
查看次数

漂亮的打印JSON python

如果有任何关于漂亮印刷JSON的人可以帮助我,我将非常感激!

我想将一个复杂的python字符串转换为JSON格式,使用下面的函数将JSON字符串移动到一个文件:

with open('data.txt', 'wt') as out:
    pprint(string, stream=out)
Run Code Online (Sandbox Code Playgroud)

问题是我认为方括号的语法错误,因为这对我来说是一个新主题,我无法弄清楚如何解决这个问题.我需要的JSON格式是这样的:

  {
        cols:[{id: 'Time', "label":"Time","type": "datetime"},
              {id: 'Time', "label":"Latency","type":"number"}],
        rows:[{c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}, 
              {c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}
              ]
    }
Run Code Online (Sandbox Code Playgroud)

我正在关注Google Visualization API,您可能对它很熟悉,但我需要动态图表.上面的代码是API创建图形所需的格式,因此我正在弄清楚如何将我的数据从MYSQL转换为这种格式,因此图形可以读取和显示.我想到的方法是定期更新包含所需JSON格式的文件,这就是%s存在的原因,但是MartijnPeters认为这是无效的.

有没有人知道我能做到的最简单的方法,还是你能指出任何有用的材料?谢谢!!

python string json google-visualization pprint

13
推荐指数
1
解决办法
3万
查看次数

如何使用内置的__str __(self)方法使用pprint打印对象?

我有一个Python脚本来处理包含报告使用信息的.txt文件.我想找到一种方法来使用pprint的pprint(vars(object))函数干净地打印对象的属性.

该脚本读取文件并创建Report类的实例.这是班级.

class Report(object):
    def __init__(self, line, headers):
        self.date_added=get_column_by_header(line,headers,"Date Added")
        self.user=get_column_by_header(line,headers,"Login ID")
        self.report=get_column_by_header(line,headers,"Search/Report Description")
        self.price=get_column_by_header(line,headers,"Price")
        self.retail_price=get_column_by_header(line,headers,"Retail Price")

    def __str__(self):
        from pprint import pprint
        return str(pprint(vars(self)))
Run Code Online (Sandbox Code Playgroud)

我希望能够干净地打印报告的实例a-la-pprint.

for i,line in enumerate(open(path+file_1,'r')):
    line=line.strip().split("|")
    if i==0:
        headers=line

    if i==1:
        record=Report(line,headers)
        print record
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

print record
Run Code Online (Sandbox Code Playgroud)

对于单个Report实例,这是我在shell中得到的.

{'date_added': '1/3/2012 14:06',
'price': '0',
'report': 'some_report',
'retail_price': '0.25',
'user': 'some_username'}
 None
Run Code Online (Sandbox Code Playgroud)

我的问题是双重的.

首先,这是一种干净地打印对象属性的好/期望方式吗?有或没有pprint有更好的方法吗?

第二,为什么呢

None
Run Code Online (Sandbox Code Playgroud)

最后打印到shell?我很困惑那来自哪里.

谢谢你的任何提示.

python string pprint

12
推荐指数
5
解决办法
2万
查看次数

pprint():如何使用双引号显示字符串?

如果我使用打印字典pprint,它总是在单引号(')周围包装字符串:

>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{'AAA': 1, 'BBB': 2, 'CCC': 3}
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉pprint使用双引号(")?我想有以下行为:

>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}
Run Code Online (Sandbox Code Playgroud)

python pretty-print pprint

12
推荐指数
1
解决办法
4836
查看次数