Python将excel数组分解成字符

当我把代码放入excel中时,每个字符都被隔开。 这使得星期二在excel中看起来像T,u,e,s,d,a,y。 目标是使excel中的每个单元格都有自己的单词而不是字符。 有很多循环,我很难find这个持续的问题的答案。 有任何想法吗?

import requests from pprint import pprint from xml.dom.minidom import parseString from openpyxl import Workbook NMNorth2=[("Farmington"),("Gallup"),("Grants"),("Las_Vegas"),("Raton"),("Santa_Fe"), ("Taos"),("Tijeras"),("Tucumcari")] NMNorth=[("NM", "Farmington"),("NM", "Gallup"),("NM", "Grants"),("NM", "Las_Vegas"),("NM", "Raton"),("NM", "Santa_Fe"), ("NM", "Taos"),("NM", "Tijeras"),("NM", "Tucumcari")] wb = Workbook() dest_filename = 'weather.xlsx' ws1 = wb.active ws1.title = "Weather" for state, city in NMNorth: r = requests.get("http://api.wunderground.com/api/id/forecast/q/"+state+"/"+city+".json") data = r.json() forecast = data['forecast']['txt_forecast']['forecastday'] for n in forecast: day = n['title'] forecaststm = (n['fcttext']) columnVariable = 2 for x in day: ws1.cell(row = 1, column = columnVariable).value = x columnVariable +=1 for y in forecaststm: ws1.cell(row = 2, column = columnVariable).value = y columnVariable +=1 rowVariable = 2 ws1.cell(row = 1, column = 1).value = "City" for state in NMNorth2: ws1.cell(row = rowVariable, column = 1).value = state rowVariable +=1 wb.save(filename = dest_filename) 

这里的问题是python将string视为迭代。 换句话说,如果你认为你正在遍历一个string列表(或类似的)并且在嵌套for循环中进入一个太深的层次,就会咬你; 识别这个最简单的方法是在每个循环中print你正在处理的内容。

在你的情况下,下面的循环是在星期几(星期几)每个字母( x ),写入一列,然后增加你写的列( columnVariable ):

 for x in day: ws1.cell(row = 1, column = columnVariable).value = x columnVariable +=1 

另外,camelCase不是标准的Python,使用下划线比如column_variable更常见。 见PEP8