数组中的值很好。如果我在一个循环中分别打印它们,它们会按原样打印出来,但是当我把它们放在一起的时候,它不会打印前两个值,并且会把其余的值弄乱。以下是打印片段:
print '['
for i in range(1, x):
print '{\"' + fNames[0] + '\":"' + fNames[i] + '\", \"' + lNames[0] + '\":\"' + lNames[i] + '\", \"' + descs[0] + '\":\"' + descs[i] + '\"},\r'
print ']'
以下是它的输出:
[
"},A really cool guy, "lname":"Bishop", "description
"},A really cool galname":"Patzer", "description
"},A really cool momlname":"Robertson", "description
"},A really cool dadame":"Bishop", "description
"},A really cool doglname":"Bishop", "description
"},A really cool cat"lname":"Jack", "description
]
注意,它不输出fName[0]和fName[i]。你知道吗
如果我这样评论打印语句的结尾:
print '['
for i in range(1, x):
print '{\"' + fNames[0] + '\":"' + fNames[i] + '\", \"' + lNames[0] + '\":\"' + lNames[i] + '\", \"' + descs[0] + '\":\"' #+ descs[i] + '\"},'
print ']'
除了“fname”中的“f”外,它还正确地打印出了大部分内容,注意它也没有打印出最后一个“\”:\“”。我已经通过filter()函数运行了数组来去除换行符,并确保我的regex不会提取它们。我就是这样填充数组的:
with open(file, "rb") as fin:
for line in fin:
col1Reg = re.search('^(.+?)(?=,)', line)
fNames.append(col1Reg.group(0))
col2Parsed = '(?<=' + fNames[x] + ',)(.*)(?=,)'
col2Reg = re.search(col2Parsed, line)
lNames.append(col2Reg.group(0))
col3Parsed = '(?<=' + lNames[x] + ',)(.*)(?=\n)'
col3Reg = re.search(col3Parsed, line)
descs.append(col3Reg.group(0))
x += 1
到底怎么回事?数组中的所有内容都是正确的,并且都处于正确的位置,那么为什么会发生这种情况呢?你知道吗
看起来您正在尝试输出json。与其构建一个字符串,不如创建一个字典列表,并通过如下方式将其转储到json:
相关问题 更多 >
编程相关推荐