python遍历列表的长度,将特定数据写入csv文件

时间:2017-04-22 19:11:23

标签: json python-2.7 csv python-requests

我使用curl请求从一组网址收集数据并将其转换为json。这些数据在python中表示为列表或词典。

编辑: 接下来,我想将我的脚本循环到列表中的字典中的值(字典的类型列表),直到满足列表的长度。我想循环我的其他curl请求每个'实例'然后将该信息写入.csv,名称为' instance_name' .csv

.csv中的信息是从2个不同的curl请求中填充的,不包括我要遍历的所有请求。 .csv需要由' instance_name'创建和填充。但实际内容是通过其他curl请求填充的。

我要循环的列表信息:

>>> instances = [i['instance_name'] for i in i_data]
>>> print(instances)
[u'Instance0', u'Instance1', .... u'Instance16']
>>> type(i_data)
<type 'list'>
>>> len(i_data)
17
>>> print(i_data[0])
{u'instance_name': u'Instance1', u'attribute2': {u'attribute2_1': u'yes', u'attribute2_2': u'no', u'attribute2_3': u'bye', u'attribute2_4': u'hello', u'attribute2_5': 500}, u'attribute3': u'abcd', u'attribute4': u'wxyz'}
>>> 

如何开始此循环?例如:

i = 0
for i in len(i_data[i]):  
    with open('{}.csv'.format(i['instance_name']), 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

尝试测试:

>>> i = 0
>>> for i in len(i_data[i]):
...     print('Hello')
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> 

其次,如何将csv中的某些字段名称与列表或词典中的某些键匹配?

对于名为“Id&#39;我想将其值作为Id

放入.csv文件中
fieldnames = ['Id', 'domain_name', 'website', 'Usage', 'Limit']

我的字段名是否应与Keys相同,以便值知道去哪里?或者我该怎么做?

我现在收到此错误:

Traceback (most recent call last):
  File "./usage_2.py", line 42, in <module>
    writer.writerow(t_data['domain_name'])
  File "/usr/local/lib/python2.7/csv.py", line 152, in writerow
    return self.writer.writerow(self._dict_to_list(rowdict))
  File "/usr/local/lib/python2.7/csv.py", line 148, in _dict_to_list
    + ", ".join([repr(x) for x in wrong_fields]))
ValueError: dict contains fields not in fieldnames: u'p', u'e', u'r', u'f', u'e', u'c', u't', u'u', u's', u'g', u'r', u'e', u'u', u'p', u'a', u'h', u'r', u'.', u'o', u'n', u'm', u'i', u'c', u'r', u'o', u's', u'o', u'f', u't', u'.', u'c', u'o', u'm'

因为,我认为它试图将json数据放在u&#39;而且我也不知道数据是否正在进行。

写入数据的一个例子:

writer.writerow(t_data['domain_name'])

条目如下:

>>> print(t_data['domain_name'])
abc.123.com
>>> 

这个&#39; t_data&#39;当我检查时,从另一个卷曲请求中拉出来表示为字典。

>>> type(t_data)
<type 'dict'>
>>> 

0 个答案:

没有答案