zoukankan      html  css  js  c++  java
  • 今天分享一个参数转Python字典的案例

    不知道大家见过这种数据结构没有:

    data_list[0][stage_id]: 0
    data_list[0][stage_type]: 1
    data_list[0][is_open]: 1
    data_list[0][contacter]: 1
    data_list[0][date_type]: 1
    data_list[0][fixed_date_type]: 1
    data_list[0][fixed_date]: 1
    data_list[1][stage_id]: 0
    data_list[1][stage_type]: 2
    data_list[1][is_open]: 1
    data_list[1][contacter]: 1
    data_list[1][date_type]: 1
    data_list[1][fixed_date_type]: 1
    data_list[1][fixed_date]: 2

    讲道理,这是第一次见这种数据结构,可能是PHP独有的解析方法,格式可能不是重点,重点是当你用request发起http请求的时候,如果你想转成[{"stage_id":0,"stage_type":1},{"stage_id":2,"stage_type":1}]再发送,会提示失败,因为这不是正规的解析方式,怎么能正常请求呢,"data_list[0][stage_id]": 0,

    然后就有了下面的解析代码:

            body = """data_list[0][stage_id]: 0
    data_list[0][stage_type]: 1
    data_list[0][is_open]: 1
    data_list[0][contacter]: 1
    data_list[0][date_type]: 1
    data_list[0][fixed_date_type]: 1
    data_list[0][fixed_date]: 1
    data_list[1][stage_id]: 0
    data_list[1][stage_type]: 2
    data_list[1][is_open]: 1
    data_list[1][contacter]: 1
    data_list[1][date_type]: 1
    data_list[1][fixed_date_type]: 1
    data_list[1][fixed_date]: 2""" result = {} r1 = [] r2 = []
    # 通过正则表达式分别拿到冒号前面和后面的值,然后进行切片 da1 = re.findall(".*?:", body) for d1 in da1: r1.append(str(d1).strip().split(':')[0]) da2 = re.findall(":.*", body) for d2 in da2: r2.append(str(d2).strip().split(':')[1]) for i in range(len(r1)):
    # 如果value是数字,那么直接转int了,如果是字符串,再触发异常后,直接放入value try: result[r1[i]] = int(r2[i]) except Exception: result[r1[i]] = r2[i]

      

  • 相关阅读:
    PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)
    PAT甲题题解-1105. Spiral Matrix (25)-(模拟顺时针矩阵)
    PAT甲题题解-1102. Invert a Binary Tree (25)-(建树,水题)
    PAT甲题题解-1101. Quick Sort (25)-大水题
    PAT甲级题解-1100. Mars Numbers (20)-字符串处理
    XJOI网上同步训练DAY1 T2
    XJOI网上同步训练DAY1 T1
    BZOJ 1061 志愿者招募
    BZOJ 2432 兔农
    KMP算法总♂结
  • 原文地址:https://www.cnblogs.com/jueshilaozhongyi/p/13935280.html
Copyright © 2011-2022 走看看