當我打開生成的 csv 檔案時,track_uri 列中有一些我無法洗掉的不需要的雙引號。請你告訴我如何洗掉它們?
該程式的代碼在這里:
import json
import csv
import os
input_data_dir = 'C:\\Users\\ProjectsDesktop\\dataset\\'
output_data_dir = 'C:\\Users\\Projects\\'
p_t_cols = ["pid", "track_uri"]
list_track_uri=[]
for filename in os.listdir(input_data_dir):
if('.json' in filename):
filepath = input_data_dir filename
print(filepath)
data = json.load(open(filepath))
playlists = data["playlists"]
for p in playlists:
line = [p["name"], p["collaborative"], p["pid"], p["modified_at"], p["num_tracks"], p["num_albums"], p["num_followers"]]
pid = p["pid"]
tracks = p["tracks"]
for t in tracks:
line = [t["artist_name"], t["track_uri"], t["artist_uri"], t["track_name"], t["album_uri"], t["duration_ms"], t["album_name"]]
track_uri = t["track_uri"]
line = [pid, track_uri]
list_track_uri.append(track_uri)
uris= set(list_track_uri)
import random
final_uris=set(random.sample(uris, 500))
print(len(final_uris))
final_uris = ','.join(final_uris)
path=r'C:\\Users\\user\\Desktop\\ML Datasets\\'
filenames = os.listdir(path)
with open('submission.csv', mode='w', newline='', encoding='utf-8') as accounts:
writer=csv.writer(accounts)
for filename in sorted(filenames):
if filename.startswith("challenge_set") and filename.endswith(".json"):
fullpath = os.sep.join((path, filename))
f = open(fullpath)
js = f.read()
f.close()
mpd_slice = json.loads(js)
writer.writerow(["pid", "track_uri"])
for playlist in mpd_slice["playlists"]:
final_uris.replace('"', '')
writer.writerow([playlist["pid"], final_uris])
這是輸出檔案的螢屏截圖
uj5u.com熱心網友回復:
改變
writer.writerow([playlist["pid"], final_uris])
到
writer.writerow([playlist["pid"], *final_uris])
uj5u.com熱心網友回復:
幾個小時后,我找到了這個問題的解決方案,如果將來有人需要,我會發布它。
我通過添加quotechar =“”將此行更改為
writer=csv.writer(accounts, quotechar = " ")
謝謝大家的幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/386366.html
上一篇:KerasLSTM維度值錯誤
