热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PythonHashtable不会保存我传递给它的列表切片

这是基本的python脚本,可解析字符串并检索参数及其值.importrelink=met_y=population&fdim_y=patien

这是基本的python脚本,可解析字符串并检索参数及其值.

import re
link = "met_y=population&fdim_y=patientStatus:7&fdim_y=pregnant:1&scale_y=lin&ind_y=false&rdim=department&idim=department:9:2:4&idim=clinic:93301:91100:93401:41201:41100&ifdim=department&tstart=1190617200000&tend=1220511600000&ind=false&draft"
print link
filters = ''
matches = re.findall("\&?(?P\w+)=(?P(\w|:)+)\&?",link )
for match in matches:
name = match[0]
value = match[1]
selection = value.split(':')
filters = {}
print selection[0]
print selection[1:len(selection)]
filters[selection[0]] = selection[1:len(selection)]
print filters

这里的问题是哈希表过滤器从不获取这些值.该脚本的输出是

{'false': []}

我究竟做错了什么?

解决方法:

您正在循环中重新创建过滤器:

filters = {}

该行需要放置在循环之前,而不是内部.

另一个潜在的问题是您的输入包含重复的键(fdim_y和idim).就目前情况而言,您的代码仅保留每个键的最后一个值.


推荐阅读
author-avatar
黄梓恒_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有