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]

      

  • 相关阅读:
    Python: 通过 pip 安装第三方包后依然不能 import
    jar命令
    vim中删除^M
    Linux 非互联网环境安装依赖包
    安装rpm包时提示错误:依赖检测失败的解决方法
    python3.5安装
    yum配置安装 及报错
    统计数组元素出现的次数
    插入法排序
    选择法排序
  • 原文地址:https://www.cnblogs.com/jueshilaozhongyi/p/13935280.html
Copyright © 2011-2022 走看看