为了账号安全,请及时绑定邮箱和手机立即绑定

字典插入默认值如果为空

字典插入默认值如果为空

米脂 2021-07-02 10:00:11
我正在从 xml 文件创建字典,如下所示:for edge in root.findall('n:graph/n:edge', ns):        source = edge.get('source')        target = edge.get('target')        edges[(source, target)] = tuple([data.text for data in edge if \        (data.get('key') == keys[0] or data.get('key') == keys[1])])这给了我这样的输出:{('4893468839','977369380'):('名称','长度')...}当字段名称的值为空时,有没有办法可以放置默认文本“noName” ?所有的键都有一个长度值,但不是所有的键都有一个名称,所以我想避免这样的输出:{('4893468839','977369380'):('长度',)...}在这种情况下得到这样的东西:{('4893468839','977369380'):('noName','length')...}更详细的信息:from lxml import etree    class graph():        _path = ""    def _readFile(self):            data = etree.parse(self._path)            root = data.getroot()    for edge in root.findall('n:graph/n:edge', ns):                source = edge.get('source')                target = edge.get('target')                edges[(source, target)] = tuple([data.text for data in edge if data.get('key') in keys[:2]])给定一段 xml,如下所示:<key attr.name="ref" attr.type="string" for="edge" id="d14" /><key attr.name="name" attr.type="string" for="edge" id="d13" /><key attr.name="geometry" attr.type="string" for="edge" id="d12" /><key attr.name="length" attr.type="string" for="edge" id="d11" /><key attr.name="oneway" attr.type="string" for="edge" id="d10" /><key attr.name="highway" attr.type="string" for="edge" id="d9" /><key attr.name="bridge" attr.type="string" for="edge" id="d8" /><key attr.name="osmid" attr.type="string" for="edge" id="d7" /><edge id="0" source="4331489627" target="4331489577">  <data key="d7">435211336</data>  <data key="d13">Calle Carretera</data>  <data key="d9">residential</data>  <data key="d10">False</data>  <data key="d11">52.45</data>  <data key="d12">LINESTRING (-4.8413613 39.4799045, -4.8414814 39.4798489, -4.8419449 39.4797838)</data></edge>
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号