2013-04-18 34 views
8

Nếu tôi in một cuốn từ điển sử dụng pprint, nó luôn luôn kết thúc tốt đẹp xung quanh chuỗi dấu nháy đơn ('):pprint(): làm thế nào để sử dụng dấu ngoặc kép để hiển thị chuỗi?

>>> from pprint import pprint 
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{'AAA': 1, 'BBB': 2, 'CCC': 3} 

Có cách nào để nói với pprint sử dụng dấu ngoặc kép (") để thay thế? Tôi muốn có hành vi sau:

>>> from pprint import pprint 
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{"AAA": 1, "BBB": 2, "CCC": 3} 
+3

Tại sao bạn cần * ngoặc kép? 'pprint()' chỉ sử dụng kết quả 'repr()' của các chuỗi, mà sẽ sử dụng ''' trừ khi một dấu ngoặc kép ''' được chứa. –

+0

Có lẽ bạn đang tìm kiếm 'json.dumps()' thay thế? JSON sử dụng dấu ngoặc kép cho các chuỗi ... –

+0

Cảm ơn @Martijn, 'json.dumps()' thực hiện những gì tôi cần. Bạn có thể đăng nó như là một câu trả lời? –

Trả lời

13

Dường như bạn đang cố gắng tạo JSON; nếu có, hãy sử dụng số json module:

>>> import json 
>>> print json.dumps({'AAA': 1, 'BBB': 2, 'CCC': 3}) 
{"AAA": 1, "BBB": 2, "CCC": 3} 
+1

Điều này sửa lỗi đơn-> dấu ngoặc kép, nhưng điều này là không đủ để xem thủ công vì nó không in ấn đầu ra. – travelingbones

+0

@travelingbones điểm là OP đã cố gắng tạo JSON và đang sử dụng công cụ sai. Họ không thực sự cố gắng in đẹp! Điều đó nói rằng, hàm 'json.dumps()' có thể được cấu hình để in đẹp, lên đến một điểm. –

+0

Tôi hiểu. Tôi đang đối mặt với cùng một vấn đề, nhưng tôi cần cả hai - Tôi cần phải đọc json đầu ra bằng tay, và cắm nó vào một cái gì đó có định dạng .json. Tôi chỉ muốn bao gồm thông tin tôi đã tìm thấy-- rằng điều này thực sự chuyển đổi các dấu nháy đơn thành dấu ngoặc kép, nhưng không in được nó. – travelingbones

Các vấn đề liên quan