【问题标题】:Python Hashtable won't save list slices I pass to itPython Hashtable 不会保存我传递给它的列表切片
【发布时间】:2012-05-17 15:56:45
【问题描述】:

这是解析字符串并检索参数及其值的基本 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<name>\w+)=(?P<value>(\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': []}

我做错了什么?

【问题讨论】:

    标签: python list hashtable


    【解决方案1】:

    您正在循环内重新创建filters

    filters = {}
    

    这条线需要放在之前循环,而不是里面。

    另一个潜在问题是您的输入包含重复的键(fdim_yidim)。就目前而言,您的代码只保留每个键的最后一个值。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-11
    • 2012-11-22
    • 2016-09-03
    • 2019-10-25
    • 1970-01-01
    • 2014-03-18
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多