我在Google Collab中撰寫了一個代碼,但是在將資料寫入 csv 檔案后它沒有打開。
沒有找到我出錯的地方所有代碼看起來都很完美。
我堅信由于最后的記錄,問題正在發生
'$6.95,Two eggs, bacon or sausage, toast, and our ever-popular hash browns,Homestyle Breakfast,950'
錯誤 :

Row 0 given with size different than 91 (the number of columns in the table).
Error: Row 0 given with size different than 91 (the number of columns in the table).
at k.insertRows (https://colab.research.google.com/v2/external/js/modules/gviz_loader.js:182:61)
at k.addRows (https://colab.research.google.com/v2/external/js/modules/gviz_loader.js:183:76)
at k.addRow (https://colab.research.google.com/v2/external/js/modules/gviz_loader.js:183:236)
at k.addRow (https://colab.research.google.com/v2/external/js/modules/gviz_loader.js:500:59)
at Q9.fillTable (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:5499:1243)
at va.program_ (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:5499:847)
at xa (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:20:336)
at va.next_ (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:18:474)
at ya.next (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:21:206)
at b (https://colab.research.google.com/v2/external/external_polymer_binary.js?vrz=colab-20220602-060045-RC00_452505088:21:468)
xml 資料:
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<desc>Two of our famous Belgian Waffles with plenty of real maple syrup</desc>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<desc>Light Belgian waffles covered with strawberries and whipped cream</desc>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<desc>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</desc>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
<price>$4.50</price>
<desc>Thick slices made from our homemade sourdough bread</desc>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
<price>$6.95</price>
<desc>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</desc>
<calories>950</calories>
</food>
</breakfast_menu>
代碼 :
import xml.etree.ElementTree as ET
import csv
readxml = ET.parse('/content/sample_data/food_details.xml')
get_root_element = readxml.getroot()
get_headers = set([ elem.tag for child in get_root_element for elem in child ])
out = []
for fd in get_root_element:
temp = []
for header in get_headers:
result = fd.find(header)
if result is not None:
if result.text is not None:
temp.append(result.text)
else:
temp.append('null')
else:
temp.append('null')
out.append('|'.join(temp))
with open('/content/sample_data/xyz.csv','w') as wr:
csv_wr = csv.writer(wr)
for i in out:
csv_wr.writerow(list(i.strip(',')))
串列中的輸出:
['$5.95,Two of our famous Belgian Waffles with plenty of real maple syrup,Belgian Waffles,650',
'$7.95,Light Belgian waffles covered with strawberries and whipped cream,Strawberry Belgian Waffles,900',
'$8.95,Light Belgian waffles covered with an assortment of fresh berries and whipped cream,Berry-Berry Belgian Waffles,900',
'$4.50,Thick slices made from our homemade sourdough bread,French Toast,600',
'$6.95,Two eggs, bacon or sausage, toast, and our ever-popular hash browns,Homestyle Breakfast,950']
上述串列資料需要寫入 csv 檔案是不是有點挑戰?
任何解決方案都非常感謝!
uj5u.com熱心網友回復:
我是這樣解決的:
out2 = [[i] for i in out]
with open('test.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(out2)
作業證明:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486680.html
