我正在try 从URL中读取CSV文件,该URL的每行开头似乎都有b‘.

因此,当我使用csv.DictReader时,它似乎不工作,因为我假设它需要一个文本文件?

import urllib.request
import csv

target_url = 'https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2022-23/gws/gw1.csv'

with urllib.request.urlopen(target_url) as csv_file:
    csv_reader = csv.DictReader(csv_file)
    players = []
    for row in csv_reader:
        players.append(dict(row))

print(players)

产生的错误: _csv.Error:迭代器应返回字符串,而不是字节(文件应以文本模式打开)

有什么 idea 吗?

推荐答案

try :

import csv
import urllib.request
from io import StringIO

target_url = 'https://raw.githubusercontent.com/vaastav/Fantasy-Premier-League/master/data/2022-23/gws/gw1.csv'

with urllib.request.urlopen(target_url) as csv_file:
    data = StringIO(csv_file.read().decode('utf-8'))
    csv_reader = csv.DictReader(data)
    players = list(csv_reader)

print(players)

打印:

[
  {'name': 'Nathan Redmond', 'position': 'MID', 'team': 'Southampton', 'xP': '1.5', 'assists': '0', 'bonus': '0', 'bps': '3', 'clean_sheets': '0', 'creativity': '0.0', 'element': '403', 'expected_assists': '0.00000', 'expected_goal_involvements': '0.00000', 'expected_goals': '0.00000', 'expected_goals_conceded': '0.00000', 'fixture': '8', 'goals_conceded': '0', 'goals_scored': '0', 'ict_index': '0.0', 'influence': '0.0', 'kickoff_time': '2022-08-06T14:00:00Z', 'minutes': '1', 'opponent_team': '18', 'own_goals': '0', 'penalties_missed': '0', 'penalties_saved': '0', 'red_cards': '0', 'round': '1', 'saves': '0', 'selected': '5871', 'starts': '0', 'team_a_score': '1', 'team_h_score': '4', 'threat': '0.0', 'total_points': '1', 'transfers_balance': '0', 'transfers_in': '0', 'transfers_out': '0', 'value': '55', 'was_home': 'False', 'yellow_cards': '0'}, 

...

Python相关问答推荐

有没有方法可以关闭Python多处理资源跟踪器进程?

aiohTTP与pytest的奇怪行为

根据多列和一些条件创建新列

customtkinter中使用的这个小部件的名称是什么

如何让pyparparsing匹配1天或2天,但1天和2天失败?

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

模型序列化器中未调用现场验证器

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

如何使用Google Gemini API为单个提示生成多个响应?

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

通过Selenium从页面获取所有H2元素

我如何使法国在 map 中完全透明的代码?

为什么抓取的HTML与浏览器判断的元素不同?

在ubuntu上安装dlib时出错

如何在图中标记平均点?

什么是最好的方法来切割一个相框到一个面具的第一个实例?

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?

Polars asof在下一个可用日期加入

未调用自定义JSON编码器