python - UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 16: ordinal not in range(128) -
यह मेरा कोड है:
#! / Usr / bin / python # आयात मॉड्यूल आयात pandas के रूप में पीडी आयात अनुरोध nppy np # के रूप में आयात करें ipython के अधिकतम पंक्ति प्रदर्शन pd.set_option ('display.max_row', 1000) # अपनी संकटनेट एपीआई कुंजी सम्मिलित करें api_key = xxxxxxxxxxxxxxx # अपने संकटनेट एपीआई एपीआई सम्मिलित करें api_url = 'http: // api .crisis.net / item? sources = twitter और tags = weather '# हेडहेडर हैडर हेडर बनाएँ = {' प्राधिकार ':' बैरियर '+ एपीआई_कीआई} # निर्धारित करें कि आप कितने डेटा बिंदुओं को कुल चाहते हैं = 10000 # एक डाटाफ्रेम बनाएं जहां अनुरोध डेटा डीएफ = pd.DataFrame () # जाना होगा एक समारोह को परिभाषित करें, डीएफ़ get_data (ऑफसेट = 0, सीमा = 100, डीएफ = कोई नहीं): # यूआरएल नामक एक चर का निर्माण करें, जिसमें अनुरोध जानकारी है, यूआरएल = Api_url + '& amp; offset =' + str (ऑफसेट) + '& amp; सीमा =' + str (सीमा) # अनुरोधित डेटा के साथ r नामक एक चर, आर = अनुरोधों। (URL, हेडर = हेडर) # कन्वर्ट डेटाफ्रेम में अनुरोध डेटा, x = pd.DataFrame (r.json ()) # डेटा का विस्तार aframe x = x ['डेटा']। लागू (पीडीएसरीज) # डेटाफ्रेम की पंक्तियों को मुख्य डेटाफ्रेम में जोड़ें, डीएफ, हमने फ़ंक्शन के बाहर परिभाषित किया है df = df.append (x, ignore_index = true) # तो, अगर कुल अनुरोध सीमा से अधिक ऑफसेट है, यदि कुल & gt; ऑफसेट + सीमा: # फ़ंक्शन को दूसरी बार रिटर्न get_data (ऑफ़सेट + सीमा, सीमा, डीएफ) # लेकिन यदि नहीं, तो फ़ंक्शन रिटर्न डीएफ खत्म करें # फ़ंक्शन चालू करें df = get_data (df = df) # डेटा पॉइंट की संख्या की जांच करें पुनर्प्राप्त लीन (डीएफ) # डुप्लिकेट डेटा पॉइंट्स डीफी ['आईडी'] के लिए चेक करें। डुप्लिकेट ()। value_counts () # सभी डुप्लिकेट डेटा बिंदुओं को छोड़ें df = df.dropna (कैसे = 'सभी') df.to_csv ('TwitterWeather सीएसवी ') # पहले 10 डेटा बिंदु को प्रिंट करें df.head () और मुझे निम्न त्रुटि मिलती है:
यूनिकोड एन्कोड त्रुटि:' ascii 'codec मैं इसे कैसे तय कर सकता हूं?
Div class = "post-text" itemprop = "text">
जैसा कि अन्य सुझाव दिए गए हैं, आपके पास यूनिकोड स्ट्रिंग है। ऐसी स्ट्रिंग त्रुटि देता है अगर आप इसे फाइल में लिखने की कोशिश करते हैं ऐसा लगता है कि जब आप डेटाफ़्रेम को किसी csv फ़ाइल में सहेजते हैं तो त्रुटि उत्पन्न होती है।
इस समस्या को हल करने के लिए, आपको सबसे पहले स्ट्रिंग को यूनिकोड में कनवर्ट करना होगा। आप एक फ़ंक्शन लिख सकते हैं जैसे:
def change_text (टेक्स्ट): वापसी पाठ.इनकोड ('यूटीएफ -8') # एन्कोडिंग मानते हुए यूटीएफ -8 आप तब उस स्तंभ को उस पर लागू कर सकते हैं जिसमें यूनिकोड वर्ण हैं:
df ['& lt; column_name & gt;'] = df.apply (change_text, axis = 1) < / कोड>
Comments
Post a Comment