我想为下面的url拉一个csv。有一列中的某些值包含文本,其中包含逗号,这会导致问题。例如,在下面的列中,最后两项应为一列,但被拆分
"""SL""","""2019-09-29""","""88.6""","""-0.6986""","""5.8034""","""Josh Phegley""",572033,542914,"""field_out""","""hit_into_play_score""",,,,,14,"""Josh Phegley grounds out"," second baseman Donnie Walton to first baseman Austin Nola. Sean Murphy scores. """
我的代码如下
import requests
import csv
file_name = 'test.csv'
url = 'https://baseballsavant.mlb.com/statcast_search/csv?all=true&hfPT=&hfAB=&hfBBT=&hfPR=&hfZ=&stadium=&hfBBL=&hfNewZones=&hfGT=R%7C&hfC=&hfSea=2019%7C&hfSit=&player_type=&hfOuts=&opponent=&pitcher_throws=&batter_stands=&hfSA=&game_date_gt=&game_date_lt=&team=OAK&position=&hfRO=&home_road=&hfFlag=&metric_1=&hfInn=&min_pitches=0&min_results=0&group_by=name&sort_col=pitches&player_event_sort=h_launch_speed&sort_order=desc&min_abs=0&type=details&'
req = requests.get(url)
with open(file_name, 'w') as f:
writer = csv.writer(f, quotechar = '"')
for line in raw_data.iter_lines():
writer.writerow(line.decode('utf-8').split(','))
我尝试删除split(',')
,但这只会导致每个字符用逗号分隔。我已经尝试了quotechar
、quoting
和escapechar
的各种组合,但没有成功。如果列出现在引号中,有没有办法忽略它们
您的传入数据已为CSV;您不应该使用
csv
模块来编写它(除非您出于某种原因需要更改方言,但即使如此,您也需要使用原始方言的csv
模块读取它,然后用新方言编写)只要做:
对UTF-8执行最小的
decode
,否则转储原始数据。如果您的区域设置编码是UTF-8(或者您希望在不考虑区域设置的情况下以UTF-8进行写入),则可以通过转储原始字节进一步简化:相关问题 更多 >
编程相关推荐