2010-10-07 29 views
7

Tôi có một bộ dữ liệu.Tuple to string

tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 

Và tôi muốn chuyển đổi nó thành một chuỗi ..

print tst2 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 

một cách tốt để làm điều này là gì?

Cảm ơn!

Trả lời

14
tst2 = str(tst) 

Ví dụ:

>>> tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> tst2 = str(tst) 
>>> print tst2 
([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> repr(tst2) 
'"([[\'name\', u\'bob-21\'], [\'name\', u\'john-28\']], True)"' 
+0

Cảm ơn Adam. Tôi nghĩ đến việc sử dụng str nhưng không bao giờ nghĩ rằng nó hoạt động! – Dais

4

Trong khi tôi muốn gợi ý của Adam cho str(), tôi muốn được nghiêng về phía repr() thay vào đó, vì thực tế bạn đang tìm kiếm một cách rõ ràng cho phần trình bày python-cú pháp giống như của vật. Đánh giá help(str), chuyển đổi chuỗi của nó cho một bộ tuple có thể kết thúc được xác định khác nhau trong các phiên bản sau.

class str(basestring) 
| str(object) -> string 
| 
| Return a nice string representation of the object. 
| If the argument is a string, the return value is the same object. 
... 

Trái ngược với help(repr):

repr(...) 
    repr(object) -> string 

    Return the canonical string representation of the object. 
    For most object types, eval(repr(object)) == object. 

Trong Todays thực tế và môi trường, mặc dù có muốn được ít sự khác biệt giữa hai, vì vậy sử dụng những gì mô tả nhu cầu của bạn tốt nhất - một cái gì đó bạn có thể ăn trở lại eval() hoặc điều gì đó có nghĩa là để sử dụng cho người dùng.

>>> str(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 
>>> repr(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)"