विकृत MySQL निर्यात
मेरे पास 11 कॉलम के साथ एक mysql तालिका है। मैंने इसे .csv के साथ निर्यात किया:
SELECT *
FROM my_table
INTO OUTFILE /path/.../my_table.csv
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY ""
LINES TERMINATED BY '\n';
दुर्भाग्य से जब मैं अजगर के साथ पंडों के साथ फाइल पढ़ने की कोशिश करता हूं:
df = pd.read_csv('my_table.csv', sep=';', engine='python',
header=None, names=my_table_headers,
na_values='NULL', quoting=csv.QUOTE_NONE)
मुझे मिला:
ParseError: Expected 11 fields in line 1885764, saw 12
क्यों होता है ऐसा?
EDIT (अधिक संदर्भ):
यहाँ मेरा mysql टेबल कैसा दिखता है:
और यहां .csv फ़ाइल TextEdit के साथ खोली गई है
"nm0000001";"Fred Astaire";"1899";"1987";"soundtrack";"actor";"miscellaneous";"tt0050419";"tt0053137";"tt0031983";"tt0072308"
"nm0000002";"Lauren Bacall";"1924";"2014";"actress";"soundtrack";NULL;"tt0071877";"tt0038355";"tt0117057";"tt0037382"
"nm0000003";"Brigitte Bardot";"1934";NULL;"actress";"soundtrack";"music_department";"tt0057345";"tt0054452";"tt0059956";"tt0049189"
"nm0000004";"John Belushi";"1949";"1982";"actor";"soundtrack";"writer";"tt0072562";"tt0080455";"tt0078723";"tt0077975"
"nm0000005";"Ingmar Bergman";"1918";"2007";"writer";"director";"actor";"tt0083922";"tt0050986";"tt0060827";"tt0050976"
"nm0000006";"Ingrid Bergman";"1915";"1982";"actress";"soundtrack";"producer";"tt0034583";"tt0036855";"tt0038109";"tt0038787"
EDIT (SOLVED):
ठीक है, जैसा कि सुझाव दिया गया है, मैं उस लाइन की तलाश में था जिसने मुझे त्रुटि दी और एक ';' एक खेत के बीच में, जैसे:
"some guy's ; name"
इसलिए मैंने ','MySQL निर्यात और अजगर कोड दोनों में विभाजक को बदल दिया । लेकिन फिर एक और लाइन ने मुझे वही त्रुटि दी जिससे मैंने विभाजक को बदल दिया '\t'जहां इसकी आवश्यकता थी और एक .tsvफ़ाइल के लिए चुना गया जो वैसे भी ठीक है। इस बार सब कुछ सुचारू हो गया। अंत भला तो सब भला। सभी का धन्यवाद।
जवाब
आपके पैरामीटर विशेष रूप से सही नहीं लगते हैं
"" द्वारा भाग गया
कृपया सीएसवी के लिए इनका उपयोग करें, वे आमतौर पर काम करते हैं
SELECT *
INTO OUTFILE '/path/.../my_table.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ESCAPED BY '"'
FROM my_table
सभी पैरामीटर डेटा पर निर्भर करते हैं, जब उस संदेश को प्राप्त करते हैं, तो यह आपको बताता है कि एक कॉलम में \ n या "जैसे वर्ण हैं, इसलिए आपको मापदंडों को आज़माना चाहिए।" ESCAPED BY '\'