You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python写入CSV时,含非ASCII字符的YouTube标题显示为字节的问题

问题解决:YouTube标题中非ASCII字符在CSV中显示异常

问题根源

  • 未指定文件编码时,非ASCII字符无法正常写入,导致CSV为空
  • 手动调用.encode("utf-8")将字符串转为字节对象,写入后CSV中显示为b'xxx'格式的字节形式

修复后的代码

import os
import json
from googleapiclient.discovery import build
from datetime import date
import csv


today = date.today()

# 初始化API客户端
api_key = 'API KEY'
youtube = build("youtube", "v3", developerKey=api_key)

# 获取希腊地区Top10热门视频
request = youtube.videos().list(
    part="snippet", 
    chart="mostPopular",
    regionCode="GR",
    maxResults=10
)
response = request.execute()

# 将结果写入CSV文件
try:
    # 打开文件时指定utf-8编码,同时移除字符串转字节的操作
    with open("trending.csv", "w", newline="", encoding="utf-8") as file:
        writer = csv.writer(file)
        writer.writerow(["TOP 10 TRENDING YOUTUBE VIDEOS " + str(today)])
        for video in response["items"]:
            writer.writerow([video["snippet"]["title"]]) 
except PermissionError:
    print("权限错误:你的Excel文件可能正在打开,请关闭后重试")

关键修改点

  • 打开文件时添加encoding="utf-8"参数,确保希腊字母等非ASCII字符能正常写入文件
  • 移除.encode("utf-8")操作,直接写入原始字符串(csv.writer会配合文件编码自动完成字符转换)

额外注意事项

如果用Excel打开CSV时希腊字母仍乱码:

  • 打开Excel后,通过「数据」→「自文本/CSV」导入文件,在导入向导中选择「UTF-8」编码

内容的提问来源于stack exchange,提问作者Giannis Tsakas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:25:42