小编Bit*_*ket的帖子

从字典中删除重复项

我有以下Python 2.7字典数据结构(我不控制源数据 - 来自另一个系统):

{112762853378: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4'], 
    'alias': ['www.example.com']
   },
 112762853385: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4'], 
    'alias': ['www.example.com']
   },
 112760496444: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4']
   },
 112760496502: 
   {'dst': ['10.122.195.34'], 
    'src': ['4.3.2.1']
   },
 112765083670: ...
}

字典键将始终是唯一的.Dst,src和别名可以是重复的.所有记录都将始终具有dst和src,但并非每条记录都必须具有第三条记录中显示的别名.

在样本数据中,前两个记录中的任何一个都将被删除(对我来说无关紧要).第三条记录将被认为是唯一的,因为虽然dst和src是相同的,但它缺少别名.

我的目标是删除所有重复dst,src和别名的记录 - 无论密钥是什么.

这个菜鸟怎么做到这一点?

另外,我对Python的有限理解将数据结构解释为字典,其值存储在字典中...这是一个dicts的字典,这是正确的吗?

python dictionary duplicates

31
推荐指数
2
解决办法
6万
查看次数

使用列标题将CSV处理为数组

我有一个CSV,第一行包含字段名称.示例数据是......

"Make","Model","Note"
"Chevy","1500","loaded"
"Chevy","2500",""
"Chevy","","loaded"
Run Code Online (Sandbox Code Playgroud)

我需要在键值对数组中格式化我的数据,其中键名是列标题.我猜对于第1行它会是这样的:

$array = [
    "Make" => "Chevy",
    "Model" => "1500",
    "Note" => "loaded"
];
Run Code Online (Sandbox Code Playgroud)

......排2 ...

$array = [
    "Make" => "Chevy",
    "Model" => "1500",
    "Note" => ""
];
Run Code Online (Sandbox Code Playgroud)

......和第3行......

$array = [
    "Make" => "Chevy",
    "Model" => "",
    "Note" => "loaded"
];
Run Code Online (Sandbox Code Playgroud)

我不确定除了静态之外该怎么做 - 问题是带有相关数据的列可能会从一个文件更改为下一个...重新排列,删除或添加的列.

你的想法非常感谢.

php csv arrays heading

21
推荐指数
3
解决办法
4万
查看次数

Postgres - 复制(剥离双引号)

我使用的Postgres 8.4.4复制,http://www.postgresql.org/docs/8.4/static/sql-copy.html,导入CSV数据到我的数据库.我的源数据中的一些值包含双引号,这些双引号在插入时被剥离,而当我通过psql执行INSERT或UPDATE语句以测试双引号时会保留.也许给出一个关于发生了什么的线索,一些值也包含逗号,这些逗号根据需要保留.

我试图在http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html中解决基于信息的问题,但没有成功.

我正在使用的复制命令是:

copy my_table (field_1, field_2, field_3 ...) from '/tmp/source.csv' with csv
Run Code Online (Sandbox Code Playgroud)

源数据使用逗号分隔符双引号.如有必要,可以更改...

"价值","另一个价值","这是"另一个"价值","不再,谢谢"

csv postgresql import copy

5
推荐指数
1
解决办法
1万
查看次数

从列表中删除字符串

我有一个包含IP地址和DNS名称的字符串列表,我希望删除以"10"开头的值.只要.样本数据如下:

['www.example.com','1.2.3.4','4.3.2.1','example.net','10.1.1.10','10.1.1.11',...]

我认为这很简单,并从以下开始:

for v in address:   
    test = re.match('(^\d+\.)',v)
    if test:
        if test.group(1) == '10.':
            address.remove(v)
Run Code Online (Sandbox Code Playgroud)

"10" 虽然我没有收到任何错误,但是没有删除地址(并且使用"print address.remove(v)"进行了一些t-shooting,导致每个"10."地址都为"无".让我相信正则表达式是错了但似乎除了这个能力之外还有效.

所以我用re.purge()戳了一下 - 这也没有帮助,但不认为这是我问题的一个因素.我也尝试使用del地址[...]无济于事.

我哪里出错了?

非常感谢您的关注.

python list

3
推荐指数
1
解决办法
3万
查看次数

Python - 搜索词典

样本数据:

{
    10116079620: {'ip.dst': ['10.1.1.5'], 'ip.src': ['1.2.3.4'], 'category': ['Misc']}, 
    10116882439: {'ip.dst': ['1.2.3.4'], 'ip.src': ['10.1.1.5'], 'category': ['Misc']}, 
    10116080136: {'ip.dst': ['10.10.10.99'], 'ip.src': ['1.2.3.4'], 'category': ['Misc']}, 
    10116884490: {'ip.dst': ['10.10.10.99'], 'ip.src': ['2.3.4.5'], 'alias': ['www.example.com'], 'category': ['Misc']}, 
    10117039635: {'ip.dst': ['2.3.4.5'], 'ip.src': ['10.11.11.50'], 'alias': ['google.com'], 'category': ['Misc']}, 
    10118099993: {'ip.dst': ['1.2.3.4'], 'ip.src': ['10.11.11.49'], 'alias': ['www.google.com'], 'category': ['Misc']},
    10118083243: {'ip.dst': ['10.11.11.49'], 'ip.src': ['4.3.2.1'], 'alias': ['www.google.com'], 'category': ['Misc']}}
}
Run Code Online (Sandbox Code Playgroud)

目标:

我的目标是使用已知存在的值(IP地址)搜索示例字典,尽管不知道它是否会出现在ip.dst或ip.src中.一旦找到,我想将"对面"(其他)IP地址写入新列表...如果在ip.src中找到搜索到的地址,我想捕获ip.dst,反之亦然.

可以多次找到搜索到的地址 - 结果列表不需要反映重复项.

如果搜索到1.2.3.4,则会捕获以下内容:
*10.1.1.5
*10.10.10.99
*10.11.11.49

搜索10.10.10.99将捕获:
*1.2.3.4
*2.3.4.5

我确信这很简单,但我遇到了令人讨厌的嵌套循环,需要一个比我的泥更清晰的简洁程序.

非常感谢您的协助.

谢谢.

python search dictionary

2
推荐指数
1
解决办法
684
查看次数

功能返回但没有价值

我有一个定义的函数,它包含一个return语句但没有返回值.我的代码如下:

def seed(addy):

    # urllib2 stuff is here

    seed_result = re.search('<td>Results 1 - \d+ of (\d+)',seed_query)  # searches for '<td>Results 1 - x of y', captures 'y'
    seed_result = seed_result.group(1)  # this is 'y' from above

    # there's a call to a different function here which works properly    
    # other stuff going on here pertaining to addy but seed_result still has my string

    # now I want to return the seed_result string...
    return seed_result

# ... some code outside of …
Run Code Online (Sandbox Code Playgroud)

python return function

-1
推荐指数
1
解决办法
325
查看次数

标签 统计

python ×4

csv ×2

dictionary ×2

arrays ×1

copy ×1

duplicates ×1

function ×1

heading ×1

import ×1

list ×1

php ×1

postgresql ×1

return ×1

search ×1