【问题标题】:Unable to print output of JSON code into a .csv file无法将 JSON 代码的输出打印到 .csv 文件中
【发布时间】:2019-11-23 03:08:10
【问题描述】:

我在尝试解码此数据时遇到以下错误,以及尝试补偿 unicode 错误后的第二个错误:

错误一:

write.writerows(subjects)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 160: ordinal not in range(128)

错误 2:

with open("data.csv", encode="utf-8", "w",) as writeFile:
SyntaxError: non-keyword arg after keyword arg

代码

import requests
import json
import csv
from bs4 import BeautifulSoup
import urllib

r    = urllib.urlopen('https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=10000&page=1')
data = json.loads(r.read().decode('utf-8'))

subjects = []

for post in data['posts']:
subjects.append([post['title'], post['episodeNumber'], 
post['audioSource'], post['image']['large'], post['excerpt']['long']])

with open("data.csv", encode="utf-8", "w",) as writeFile:
write = csv.writer(writeFile)
write.writerows(subjects)

【问题讨论】:

    标签: json python-2.7 csv parsing web-scraping


    【解决方案1】:

    使用请求并更正第二部分(如下)我运行没有问题。我认为您的第一个问题是由于第二个错误(这是不正确的结果)。

    我在 Python3 上,可以用我的修复来运行你的打开线和

    r = urllib.request.urlopen('https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=10000&page=1')
    

    我个人会使用requests

    import requests
    import csv
    
    data = requests.get('https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=10000&page=1').json()
    
    subjects = []
    
    for post in data['posts']:
        subjects.append([post['title'], post['episodeNumber'], 
        post['audioSource'], post['image']['large'], post['excerpt']['long']])
    
    with open("data.csv", encoding ="utf-8", mode = "w",) as writeFile:
        write = csv.writer(writeFile)
        write.writerows(subjects)
    

    第二个,查看open 函数的documentation,如果位置不匹配,则需要使用正确的参数名称并添加mode 参数的名称。

    with open("data.csv", encoding ="utf-8", mode = "w") as writeFile:
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2018-01-23
      • 2020-10-05
      相关资源
      最近更新 更多