我如何将这个txt文件解析为csv?

时间:2019-10-15 21:52:16

标签: python parsing

我如何将其解析为一个csv文件?

[{“ new_match”:0,“ original_sid”:146,“ recommended_sid”:342,“ score”:10.442},{“ new_match”:0,“ original_sid”:146,“ recommended_sid”:11,“ score“:12.4652521},{” new_match“:0,” original_sid“:238,” recommended_sid“:55,” score“:11.459223},{” new_match“:0,” original_sid“:238,” recommended_sid“:654 ,“得分”:12.33},{“ new_match”:0,“ original_sid”:203,“ recommended_sid”:119,“得分”:2.384},{“ new_match”:0,“ original_sid”:203,“ recommended_sid” :274274,“得分”:18.36}]

是我的ad.txt文件。

我想使用“ new_match”,“ original_sid”,“ recommended_sid”和“ score”列创建一个数据框。有什么办法可以快速做到这一点?

2 个答案:

答案 0 :(得分:1)

这看起来像json,所以您应该可以喜欢它。这将打印您的CSV以便输出。

#!/usr/bin/env python3

import json
import csv
import sys

# pass in your ad.txt
d = json.load(open(sys.argv[1]))
csvw = csv.DictWriter(sys.stdout, fieldnames=['new_match', 'original_sid', 'recommended_sid', 'score'])
csvw.writeheader()
for i in d:
    csvw.writerow(i)

答案 1 :(得分:0)

使用熊猫:

import pandas as pd
data = [
    {"new_match":0,"original_sid":146,"recommended_sid":342,"score":10.442
    {"new_match":0,"original_sid":146,"recommended_sid":11,"score":12.4652521},
    {"new_match":0,"original_sid":238,"recommended_sid":55,"score":11.459223},
    {"new_match":0,"original_sid":238,"recommended_sid":654,"score":12.33},
    {"new_match":0,"original_sid":203,"recommended_sid":119,"score":2.384},
    {"new_match":0,"original_sid":203,"recommended_sid":274274,"score":18.36}
]
df = pd.DataFrame(data)
data_csv = df.to_csv(index=False)