<p>我想从荷兰统计局(CBS)将OData XML数据源导入我们的数据库。使用lxml和pandas,我认为这应该是straigtforward。通过使用OrderDict,我想保持列的顺序以便于阅读,但不知怎么的,我不能把它弄对。</p>
<pre><code>from collections import OrderedDict
from lxml import etree
import requests
import pandas as pd
# CBS URLs
base_url = 'http://opendata.cbs.nl/ODataFeed/odata'
<a href="https://www.cnpython.com/pypi/dataset" class="inner-link">dataset</a>s = ['/37296ned', '/82245NED']
feed = requests.get(base_url + datasets[1] + '/TypedDataSet')
root = etree.fromstring(feed.content)
# all record entries start at tag m:properties, parse into data dict
data = []
for record in root.iter('{{{}}}properties'.format(root.nsmap['m'])):
row = OrderedDict()
for element in record:
row[element.tag.split('}')[1]] = element.text
data.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(row)
df = pd.DataFrame.from_dict(data)
df.columns
</code></pre>
<p>检查<code>data</code>,OrderDict的顺序是正确的。但看看<code>df.head()</code>这些列是按字母顺序排列的,首先是大写字母?</p>
<p>有人帮忙吗?</p>