Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将段落元组列表写入csv文件_Python_Csv - Fatal编程技术网

Python 将段落元组列表写入csv文件

Python 将段落元组列表写入csv文件,python,csv,Python,Csv,下面的代码设计用于将一个元组(每个元组包含一个大的文本段落,后面有两个标识符)写入每个条目的一行 import urllib2 import json import csv base_url = "https://www.eventbriteapi.com/v3/events/search/?page={} writer = csv.writer(open("./data/events.csv", "a")) writer.writerow(["description", "category_

下面的代码设计用于将一个元组(每个元组包含一个大的文本段落,后面有两个标识符)写入每个条目的一行

import urllib2
import json
import csv

base_url = "https://www.eventbriteapi.com/v3/events/search/?page={}
writer = csv.writer(open("./data/events.csv", "a"))
writer.writerow(["description", "category_id", "subcategory_id"])

def format_event(event):
    return event["description"]["text"].encode("utf-8").rstrip("\n\r"), event["category_id"], event["subcategory_id"]

for x in range(1, 2):
    print "fetching page - {}".format(x)
    formatted_url = base_url.format(str(x))
    resp = urllib2.urlopen(formatted_url)
    data = resp.read()
    j_data = json.loads(data)
    events = map(format_event, j_data["events"])
    for event in events:
        #print event
        writer.writerow(event)

    print "wrote out events for page - {}".format(x)
理想的格式是每行包含一个段落,然后是上面列出的其他字段,但这里有一个显示数据的屏幕截图

如果我将此行改为以下内容:

writer.writerow([event])
以下是文件现在的外观:

它当然看起来更接近我想要的,但它在每个条目周围都有括号,这是不可取的

编辑
是包含我正在使用的数据示例的代码段。

将您的csv编写器更改为

做一些调整:

def format_event(event):
    return {"description": event["description"]["text"].encode("utf-8").rstrip("\n\r"), 
            "category_id": event["category_id"], 
            "subcategory_id": event["subcategory_id"]}

也许你还需要做一些其他的小事情,但是使用DictWriter和适当地格式化你的数据是我发现的处理csv文件最简单的方法

将您的csv编写器更改为

做一些调整:

def format_event(event):
    return {"description": event["description"]["text"].encode("utf-8").rstrip("\n\r"), 
            "category_id": event["category_id"], 
            "subcategory_id": event["subcategory_id"]}

也许你还需要做一些其他的小事情,但是使用DictWriter和适当地格式化你的数据是我发现的处理csv文件最简单的方法

您是否可以尝试直接写入CSV文件而不使用
CSV
模块?您可以将逗号分隔的字符串写入/附加到CSV文件,就像写入典型的文本文件一样。此外,处理删除
\r
\n
字符的方法可能不起作用。您可以使用正则表达式查找这些字符,并用空字符串替换它们。“”:


您是否可以尝试直接写入CSV文件而不使用
CSV
模块?您可以将逗号分隔的字符串写入/附加到CSV文件,就像写入典型的文本文件一样。此外,处理删除
\r
\n
字符的方法可能不起作用。您可以使用正则表达式查找这些字符,并用空字符串替换它们。“”:


我仍然有相同的间距问题,我添加了一个片段,其中包含我正在处理的数据示例。问题可能在于您处理删除
\r
\n
字符的方式。我已经更新了我的答案,以反映一种解决方案,该解决方案利用正则表达式查找这些字符,并用空字符串替换它们,我添加了一个包含我正在处理的数据示例的代码段。问题可能在于您处理删除
\r
\n
字符的方式。我已经更新了我的答案,以反映一种解决方案,该解决方案利用正则表达式查找这些字符,并用空字符串替换它们,我添加了一个片段,其中包含我正在使用的数据示例。如果我将字典转换为json并转储,则文本格式正确。我仍然存在相同的间距问题,我添加了一个片段,其中包含我正在处理的数据示例。如果我将字典转换为json并转储它,那么文本的格式是正确的。