2013-02-15 10 views
6

मैं इस कार्रवाई एक क्वेरीसमूह को पुनः प्राप्त करने की सूची values_list आपरेशन द्वारा दिया यूनिकोड की सूची बदलने के लिए:अजगर 2 तार

Name.objects.values_list('name', flat=True) 

और यह इन परिणाम देता है:

[u'accelerate', u'acute', u'bear', u'big'] 

परिणाम सभी यूनिकोड (यू ') में हैं। कैसे मैं उन सभी ताकि मैं परिणाम प्राप्त निकालूँ:

['accelerate', 'acute', 'bear', 'big'] 

उत्तर

14

आप UTF8 में सांकेतिक शब्दों में बदलना चाहते हैं, तो आप बस कर सकते हैं:

definitions_list = [definition.encode("utf8") for definition in definitions.objects.values_list('title', flat=True)] 
8

आप सभी मूल्यों पर str कह सकते हैं (ध्यान दें कि नक्शा थोड़ा आलसी है, list() तुरंत इसे चालू करने के लिए एक इंडेक्स करने योग्य वस्तु में वापस जोड़ा):

thingy = list(map(str, [u'accelerate', u'acute', u'bear', u'big'])) 

या एक सूची समझ का उपयोग करें:

[str(item) for item in [u'accelerate', u'acute', u'bear', u'big']] 

अंत में हालांकि, तुम क्यों str स्पष्ट होना करने के लिए उन्हें आवश्यक हो; एक django टेम्पलेट में जोड़ा गया (जैसे {{ value }}), आप गायब हो जाएंगे।

+0

के रूप में उल्लेख किया है, आप सूची() कॉल को छोड़ सकते हैं। मैंने ऐसा करने में किसी भी मुद्दे में भाग नहीं लिया है। यदि आप इस बात का विस्तार कर सकते हैं कि कोई मुद्दा क्यों होगा, तो मैं इसकी सराहना करता हूं! – Dap

+0

हम्म, आप सही हैं। बस इसे py27 और py34 में आज़माएं, जहां py27 एक 'सूची' देता है, py34 एक 'map' ऑब्जेक्ट देता है। एक टेम्पलेट में प्रयुक्त होने की संभावना नहीं है। मैं जवाब छोड़ दूंगा, क्योंकि एक दुभाषिया का आउटपुट बहुत स्पष्ट है ('सूची()' के बिना, py3 '' पर कुछ बताएगा। – akaIDIOT

2

मुझे लगता है कि कम रास्ता json.dumps()

json.dumps(definitions.objects.values_list('title', flat=True)) 

उपयोग कर रहा है तो आप की तरह json प्रारूप के रूप में स्ट्रिंग परिणाम मिल जाएगा

'["accelerate", "acute", "bear", "big" ...]' 

और यदि आप इसे पाइथन चर में बदलना चाहते हैं, तो बसका उपयोग करेंसमारोह के रूप में है, तो आपके कोड इस

json_format_string = json.dumps(definitions.objects.values_list('title', flat=True)) 

my_list = eval(json_format_string) # ['accelerate', 'acute', 'bear', 'big' ...] 
0

की तरह अधिक मैं इस

my_list = list(map(str, [u'accelerate', u'acute', u'bear', u'big'...])) 
1

अजगर में 2.7 का उपयोग कर सूची के बिना नक्शे के रूप में अच्छी तरह से ठीक है justing इस्तेमाल किया

list_of_python_strings = map(str, [u'accelerate']) 
संबंधित मुद्दे