【发布时间】:2022-01-20 23:02:49
【问题描述】:
当我打开生成的 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])
【问题讨论】:
-
请更新以发布文本 不是图片。
-
双引号是 CSV 格式的一部分,因此您不想删除它们。如果输出的值恰好包含一个逗号,则该值以双引号输出,以便读者知道将该逗号视为值的一部分而不是列分隔符。这是 CSV 文件的 RFC 4180 标准:ietf.org/rfc/rfc4180.txt