【问题标题】:Empty .csv file after python script exportpython脚本导出后的空.csv文件
【发布时间】:2018-08-21 03:45:18
【问题描述】:

文件显示为“已修改”,但仍为 0kb 且为空​​。

使用以下代码:

import csv

from craigslist import CraigslistForSale
cl_f = CraigslistForSale (site = 'boston', area = 'gbs', category = 'sys', 
                      filters = {'min_price':5, 'max_price':300, 'has_image':True,
                                 'query':"by owner",'query':"imac"})

for result in cl_f.get_results(sort_by='newest',limit=5):
print result

with open('CL-iMac.csv', 'wb') as f:
    writer = csv.writer(f, delimiter=',')

通读其他“类似”问题,但仍不清楚如何解决。

e/添加后打印结果

for result in cl_f.get_results(sort_by='newest',limit=5):
    writer.writerow(result)

{'name': u'iMac Mid 2009', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/imac-mid-2009/6504630631.html', 'has_map': True, 'price': u'$190', 'geotag': None, 'where': u'Bedford', 'id': u'6504630631', 'datetime': u'2018-03-12 21:03'}
{'name': u'Apple - iMac Model A1311', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-imac-model-a1311/6525426093.html', 'has_map': True, 'price': u'$180', 'geotag': None, 'where': u'BOSTON', 'id': u'6525426093', 'datetime': u'2018-03-12 19:57'}
{'name': u'Apple iMac 5.1 Model A1208 17" All-in-one', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-imac-51-model-aall-in/6525156610.html', 'has_map': True, 'price': u'$80', 'geotag': None, 'where': u'HYDE PARK', 'id': u'6525156610', 'datetime': u'2018-03-12 13:43'}
{'name': u'imac computer 20 inch', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/imac-computer-20-inch/6488426996.html', 'has_map': True, 'price': u'$210', 'geotag': None, 'where': u'Medford', 'id': u'6488426996', 'datetime': u'2018-03-08 11:17'}
{'name': u'Apple Magic Mouse & Keyboard Set', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-magic-mouse-keyboard-set/6521325579.html', 'has_map': True, 'price': u'$80', 'geotag': None, 'where': u'Malden', 'id': u'6521325579', 'datetime': u'2018-03-06 21:12'}

Traceback (most recent call last):
File "/Documents/Test.py", line 13, in <module>
writer.writerow(result)
Error: sequence expected

【问题讨论】:

  • 它已被修改,因为您打开了它.. 但是您关闭了它而没有向文件中写入任何内容!
  • @johnashu 好的,如何在文件打开时将输出写入文件?

标签: python export-to-csv


【解决方案1】:

使用生成器将数据作为字典返回。

这将一次返回每个字典 1。

您希望它出现在列表中,以便可以对其进行迭代。

您必须将每个字典附加到一个列表中。

#Create a list to hold the results.
data_parsed = []

#append each result to the list
for result in cl_f.get_results(sort_by='newest',limit=5):
    data_parsed.append(result)

然后你可以将数据写入csv如下

with open('CL-iMac.csv', 'w') as f:
    #Create writer
    writer = csv.writer(f) 

    #Write header row from 1st item keys
    # name,has_image,url,has_map,price,geotag,where,id,datetime
    header = data_parsed[0].keys()
    writer.writerow(header)

    #Write each row from the values
    # iMac Mid 2009,True,https://boston.craigslist.org/gbs/sys/d/imac-mid-2009/6504630631.html,True,$190,,Bedford,6504630631,2018-03-12 21:03

    for result in data_parsed:
        writer.writerow(result.values())

如果我假设

data_parsed = [{'name': u'iMac Mid 2009', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/imac-mid-2009/6504630631.html', 'has_map': True, 'price': u'$190', 'geotag': None, 'where': u'Bedford', 'id': u'6504630631', 'datetime': u'2018-03-12 21:03'},
{'name': u'Apple - iMac Model A1311', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-imac-model-a1311/6525426093.html', 'has_map': True, 'price': u'$180', 'geotag': None, 'where': u'BOSTON', 'id': u'6525426093', 'datetime': u'2018-03-12 19:57'},
{'name': u'Apple iMac 5.1 Model A1208 17" All-in-one', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-imac-51-model-aall-in/6525156610.html', 'has_map': True, 'price': u'$80', 'geotag': None, 'where': u'HYDE PARK', 'id': u'6525156610', 'datetime': u'2018-03-12 13:43'},
{'name': u'imac computer 20 inch', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/imac-computer-20-inch/6488426996.html', 'has_map': True, 'price': u'$210', 'geotag': None, 'where': u'Medford', 'id': u'6488426996', 'datetime': u'2018-03-08 11:17'},
{'name': u'Apple Magic Mouse & Keyboard Set', 'has_image': True, 'url': u'https://boston.craigslist.org/gbs/sys/d/apple-magic-mouse-keyboard-set/6521325579.html', 'has_map': True, 'price': u'$80', 'geotag': None, 'where': u'Malden', 'id': u'6521325579', 'datetime': u'2018-03-06 21:12'}]

那么上面的代码就创建了如下的csv数据。

name,has_image,url,has_map,price,geotag,where,id,datetime
iMac Mid 2009,True,https://boston.craigslist.org/gbs/sys/d/imac-mid-2009/6504630631.html,True,$190,,Bedford,6504630631,2018-03-12 21:03
Apple - iMac Model A1311,True,https://boston.craigslist.org/gbs/sys/d/apple-imac-model-a1311/6525426093.html,True,$180,,BOSTON,6525426093,2018-03-12 19:57
"Apple iMac 5.1 Model A1208 17"" All-in-one",True,https://boston.craigslist.org/gbs/sys/d/apple-imac-51-model-aall-in/6525156610.html,True,$80,,HYDE PARK,6525156610,2018-03-12 13:43
imac computer 20 inch,True,https://boston.craigslist.org/gbs/sys/d/imac-computer-20-inch/6488426996.html,True,$210,,Medford,6488426996,2018-03-08 11:17
Apple Magic Mouse & Keyboard Set,True,https://boston.craigslist.org/gbs/sys/d/apple-magic-mouse-keyboard-set/6521325579.html,True,$80,,Malden,6521325579,2018-03-06 21:12

【讨论】:

  • 我已阅读文档。 “data_to_write”是第一部分的输出(导入 csv...打印结果),但我不知道如何将其指向为要写入的数据。这有意义吗?
  • 我已经编辑了我的帖子.. 我无法让 Craigslist 模块与我正在使用的模块一起工作.. 如果这不起作用,您可以发布print result的结果@
  • 不幸的是,仍然出现错误: Traceback(最近一次调用最后一次):文件“Documents/Test.py”,第 13 行,在 writer.writerow(result) 错误:还需要序列编辑了我最初的问题,结果为“打印结果”
  • 您的最新更新完全出乎我的意料,看起来与我读过的众多搜索结果中的任何一个都完全不同。我怎么知道它是否是json数据?为什么我需要“解析”它?有没有简单的方法可以“直接”将一部分代码的输出“导出”到代码的后一部分?我觉得这应该是一个简单而常见的问题。
  • 对不起.. 我不能使用 craigslist 模块,所以我猜会是什么响应......如果你能发布print cl_f.get_results(sort_by='newest',limit=5) 的结果。 .我已经更新使用猜测它是一个字典列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2018-12-18
  • 2019-01-08
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多