Làm cách nào để có được dấu vân tay của python để trả về một chuỗi thay vì in?


180

Nói cách khác, sprintf tương đương với pprint là gì?

Câu trả lời:


262

Các pprint mô-đun có một lệnh đặt tên pformat , chỉ cho mục đích đó.

Từ tài liệu:

Trả về đại diện được định dạng của đối tượng dưới dạng một chuỗi. thụt lề, chiều rộng và chiều sâu sẽ được chuyển đến hàm tạo PrettyPrinter dưới dạng tham số định dạng.

Thí dụ:

>>> import pprint
>>> people = [
...     {"first": "Brian", "last": "Kernighan"}, 
...     {"first": "Dennis", "last": "Richie"},
... ]
>>> pprint.pformat(people, indent=4)
"[   {   'first': 'Brian', 'last': 'Kernighan'},\n    {   'first': 'Dennis', 'last': 'Richie'}]"

16

Giả sử bạn thực sự có ý nghĩa pprinttừ thư viện in đẹp , thì bạn muốn pprint.pformatphương thức này.

Nếu bạn chỉ có ý print, thì bạn muốnstr()


14
>>> import pprint
>>> pprint.pformat({'key1':'val1', 'key2':[1,2]})
"{'key1': 'val1', 'key2': [1, 2]}"
>>>


8

Một cái gì đó như thế này:

import pprint, StringIO

s = StringIO.StringIO()
pprint.pprint(some_object, s)
print s.getvalue() # displays the string 

1
về mặt kỹ thuật, câu trả lời "đúng" duy nhất chỉ xem xét tiêu đề
biệt thự
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.