1.json.dump使用

http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.html

- 针对文件
json.dump
json.load

ps:各台机器机器本地计算, os.walk根据目录算出目录下所有文件绝对路径,遍历后汇总成一个数组做处理

2.字典数据结构:使用前先初始化

- d有一级 d = {'name':[]}
d = {}
if d.get('name'):
    d['name'].append('maotai')
else:
    d['name'] = []
- d有两级: d = {'name':{k:[]}}
d = {}
for i in data:
    if d.get(i[0]):
        if d[i[0]].get(i[1]):
            d[i[0]][i[1]].append(i[2])
        else:
            d[i[0]][i[1]] = [i[2]]
    else:
        d[i[0]] = {i[1]: [i[2]]}

较完善的一个例子

import os
import json

# 获取数据
def get_data():
    data = []
    with open('/tmp/res/res.txt') as f:
        for i in f:
            ip = i.split()[0]
            hash_val = i.split()[1]
            file_name = os.path.basename(i.split()[2])
            data.append([file_name, hash_val, ip])
    # print(json.dumps(data))

    # 处理数据
    d = {}
    for i in data:
        if d.get(i[0]):
            if d[i[0]].get(i[1]):
                d[i[0]][i[1]].append(i[2])
            else:
                d[i[0]][i[1]] = [i[2]]
        else:
            d[i[0]] = {i[1]: [i[2]]}
    # print(json.dumps(d))

    # 生成html
    html_tmpl_start = '''
    <table border='1' cellspacing="0">
        <tr>
            <td>file_name</td>
            <td>hash</td>
            <td>ip</td>
        </tr>
    '''

    html_tmpl_file_begin = '<tr>'
    html_tmpl_file = '''
            <td rowspan="%s">%s</td>
    '''

    html_tmpl_hash = '''
            <td>%s</td>
    '''

    html_tmpl_ip = '''
            <td>%s</td>
    '''

    html_tmpl_ip_end = '</tr>'

    html_tmpl_end = '</table>'
    html_content = ''

    # 统计下同一个file有几个hash
    # print(d)

    for k, v in d.items():
        html_tmpl_file_res = ''
        html_tmpl_hash_res = ''
        html_tmpl_ip_res = ''
        flag = 1
        if len(v) > 1:
            # file: k, 看hash
            html_tmpl_file_res = html_tmpl_file % (len(list(v.keys())), k)
            # print(html_tmpl_file_res)
            # hash: k is hash,v is ip,看ip

            for m, n in v.items():
                if flag == 1:

                    html_tmpl_hash_res = html_tmpl_hash % (m)
                    html_tmpl_ip_res = html_tmpl_ip % (n)
                    tmp = html_tmpl_file_begin + html_tmpl_file_res + html_tmpl_hash_res + html_tmpl_ip_res + html_tmpl_ip_end
                    flag += 1

                else:
                    html_tmpl_hash_res = html_tmpl_hash % (m)
                    html_tmpl_ip_res = html_tmpl_ip % (n)

                    tmp = html_tmpl_file_begin + html_tmpl_hash_res + html_tmpl_ip_res + html_tmpl_ip_end
                html_content += tmp

    content = html_tmpl_start + html_content + html_tmpl_end
    return content

[py]初始化dict结构和json.dump使用的更多相关文章

  1. json.dump()和json.dmups()的区别

    在python中支持json合适的数据是通过json模块实现的. 在序列化json数据的时候遇到两个形状很像的函数,dump()和dumps().主要说说他们的区别 先看看官方文档的说明:https: ...

  2. json.dumps(),json.loads(),json.dump(),json.load()方法的区别

    1. json.dumps() json.dump()是将字典类型转化成字符串类型. import json dic = {'a':'1111','b':'2222','c':'3333','d':' ...

  3. python json.dumps() json.dump()的区别

    以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...

  4. python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分

    一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行js ...

  5. json.dumps与json.dump的区别 json.loads与json.load的区别

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...

  6. json.dump和json.dumps区别,json.load和json.loads的区别

    dumps是将python类型(list,dict等)转化成str格式,loads是将str转化成python类型(list,dict等). dump和load也是类似的功能,只是与文件操作结合起来了 ...

  7. python中json.load()、json.loads()、json.dump()、json.dumps()的区别

    json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将j ...

  8. 【Python基础】json.dumps()和json.loads()、json.dump()和json.load()的区分

    json文件处理涉及的四个函数json.dumps()和json.loads().json.dump()和json.load()的区分 一.概念理解 1.json.dumps()和json.loads ...

  9. json -- dump load dumps loads 简单对比

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...

随机推荐

  1. Don't forget to Cherish

    Watch the video Cherish time, Cherish memories, Cherish tears, Cherish smiles, Cherish friends, Cher ...

  2. ASP.NET MVC文章系列

    Summary of article list for ASP.NET MVC [Basic] Pro ASP.NET MVC chapter 2 http://www.cnblogs.com/yan ...

  3. officewebapps 服务器部署问题

    officewebapps 服务器部署问题 部署文档 http://technet.microsoft.com/zh-cn/library/jj219455 New-OfficeWebAppsFarm ...

  4. js监听指定元素的css动画属性

    MDN 监听css动画,开始,迭代次数,结束,中断 回调函数返回 animationEvent属性 <!DOCTYPE html> <html> <head> &l ...

  5. mysql 登录远程数据库

    mysql -h${hostIP} -P${hostPort} -u${userName} -p${passwd}

  6. <a>标签中的href如何调用js代码

    在HTML中,<a>标签的href属性用于指定超链接的目标的URL.在所有浏览器中,链接的默认外观是: 未被访问的链接带有下划线而且是蓝色的 已被访问的链接带有下划线而且是紫色的 活动链接 ...

  7. 【TOP100案例专访】当当网工程师林嘉琦谈双11大促经验及APM实践

    导读:第七届TOP100全球软件案例研究峰会将于11月30日-12月3日在北京国家会议中心举办,本届峰会以“释放AI生产力 让组织向智能化演进”为开幕式主题,旨在推动企业在趋势下拥抱AI.探索和思考A ...

  8. redis集群,主从,持久化

    1,单机版 先安装gcc   yum install gcc-c++ 然后解压源码包,执行编译命令make(C语言写的,需要gcc环境),最后安装Redis,需要通过PREFIX指定安装路径make ...

  9. [No0000149]ReSharper操作指南6/16-编码协助之其他协助

    语法高亮 ReSharper扩展了默认Visual Studio的符号高亮显示.此外,它还会使用可配置的颜色突出显示字段,局部变量,类型和其他标识符.例如,ReSharper语法突出显示允许您轻松区分 ...

  10. hive优化之开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...