我有一个9mb xml文件,其中包含有关我编写脚本的系统的信息。系统会保存名为symbols
的小文件,每个符号都有一个tick type
,属于estate
。
数据以此格式存储。
<Symbol SymbolName="name" Estate="estate" TickType="type" />
我目前正在解析文件并写入3个文件,每个文件都包含三个内容之一的列表。
我需要做的是以某种方式将数据存储在列表或字典中,使所有符号都可以写入文件,并将相应的类型和属性写入文件的另一部分。
结果旨在成为一个html文件,其中包含您选择的下拉列表和estate
,并在其中显示symbols
并提供每个type
symbol
}。
我当前的解析方法是使用xml.dom.minidom
模块,然后使用getElementsByTagName
这会返回我想要的每个事物的3个列表,但不会将它们链接到相应的成员其他清单。
答案 0 :(得分:0)
安装以下文件
pip install beautifulsoup4
pip install flask
然后运行跟随og代码
from bs4 import BeautifulSoup
from flask import Flask, request, jsonify
xml = '''\
<Symbol SymbolName="A" Estate="e1" TickType="t1" />
<Symbol SymbolName="B" Estate="e1" TickType="t2" />
<Symbol SymbolName="C" Estate="e1" TickType="t2" />
<Symbol SymbolName="D" Estate="e2" TickType="t2" />
'''
soup = BeautifulSoup(xml)
symbols = soup.find_all('symbol')
app = Flask(__name__)
@app.route("/")
def filter_symbols():
constraint = request.args.get('estate', None)
estate_in_req = 'estate' in request.args
return jsonify(symbols=[
{'name': s.get('symbolname'), 'type': s.get('ticktype')}
for s in symbols if not estate_in_req or s.get('estate') == constraint
])
if __name__ == "__main__":
app.run(debug=True)
现在你有了一个解决问题的网络服务器。
本地主机:5000 /地产= E1
将输出:
{
"symbols": [
{
"name": "A",
"type": "t1"
},
{
"name": "B",
"type": "t2"
},
{
"name": "C",
"type": "t2"
}
]
}
到您的浏览器。
我希望您可以使用代码段继续使用您的解决方案。
如果您遇到性能问题,请使用数据库。 ;)
- brunsgaard