2つのCSVファイルを比較

python subprocess call to compare two CSV files using grep or awk or sed – StackOverflow

Pandasがリーズナブル.

import io
import pandas as pd
from pandas.io.json import json_normalize


r = { "status":"success", "msg":"", "data":[ { "website":"https://www.blahblah.com", "severity":"low", "location":"unknown", "asn_number":"AS4134 Chinanet", "longitude":121.3997000000, "epoch_timestamp":1530868957, "id":"c1e15eccdd1f31395506fb85" }, { "website":"https://www.jhonedoe.co.uk/sample.pdf", "severity":"low", "location":"unknown", "asn_number":"AS4134 Chinanet", "longitude":120.1613998413, "epoch_timestamp":1530868957, "id":"933bf229e3e95a78d38223b2" } ] }
processed_results = json_normalize(r, 'data')

strings = """http://download2.freefiles-10.de,AS24940 Hetzner Online GmbH,high
https://www.jhonedoe.co.uk/sample.pdf,AS4134 Chinanet,low
http://download2.freefiles-11.de,AS24940 Hetzner Online GmbH,high
www.solener.com,AS20718 ARSYS INTERNET S.L.,low
https://www.blahblah.com,AS4134 Chinanet,low
www.telewizjairadio.pl,AS29522 Krakowskie e-Centrum Informatyczne JUMP Dziedzic,high"""

master_meta = pd.read_csv(io.StringIO(strings), header=None)

cond = processed_results.isin(master_meta.values.ravel())
processed_results[cond].dropna(1)
    asn_number  severity    website
0   AS4134 Chinanet low https://www.blahblah.com
1   AS4134 Chinanet low https://www.jhonedoe.co.uk/sample.pdf

Pandasを使わない場合は,

関連:
文字列にリストに既定された任意の文字列が含まれているかどうかをループを使わずに確認

テキストファイルの文字列を別のテキストファイルの文字列で書き換える

の方法を利用できる.

カテゴリー: 未分類 パーマリンク