小编ign*_*lut的帖子

Python引发了一个KeyError(对于一个out of dictionary key),即使字典中的键是IS

即使我知道密钥IS实际上在字典中,我也会因为字典密钥而出现KeyError.关于可能导致这种情况的任何想法?

print G.keys()
Run Code Online (Sandbox Code Playgroud)

返回以下内容:

['24', '25', '20', '21', '22', '23', '1', '3', '2', '5', '4', '7', '6', '9', '8', '11', '10', '13', '12', '15', '14', '17', '16', '19', '18']
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在下一行代码中访问字典中的值时......

for w in G[v]:    #note that in this example, v = 17
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

KeyError: 17
Run Code Online (Sandbox Code Playgroud)

任何帮助,提示或建议都表示赞赏.谢谢.

python dictionary exception key

8
推荐指数
2
解决办法
3万
查看次数

使用Python的内置.csv模块编写

[请注意,这是一个与已经回答的问题不同的问题如何使用Python的内置.csv编写器模块替换列?]

我需要在一个巨大的Excel .csv文件中进行查找和替换(特定于一列URL).由于我正处于尝试自学脚本语言的开始阶段,我想我会尝试在python中实现该解决方案.

当我在更改条目内容后尝试写回.csv文件时,我遇到了麻烦.我已经阅读了有关如何使用编写器官方csv模块文档,但是没有一个示例涵盖了这种情况.具体来说,我试图在一个循环中完成读取,替换和写入操作.但是,在for循环的参数和writer.writerow()的参数中都不能使用相同的'row'引用.所以,一旦我在for循环中进行了更改,我应该如何写回文件?

编辑:我实施了S. Lott和Jimmy的建议,结果仍然相同

编辑#2:根据S. Lott的建议,我将"rb"和"wb"添加到open()函数中

import csv

#filename = 'C:/Documents and Settings/username/My Documents/PALTemplateData.xls'

csvfile = open("PALTemplateData.csv","rb")
csvout = open("PALTemplateDataOUT.csv","wb")
reader = csv.reader(csvfile)
writer = csv.writer(csvout)

changed = 0;

for row in reader:
    row[-1] = row[-1].replace('/?', '?')
    writer.writerow(row)                  #this is the line that's causing issues
    changed=changed+1

print('Total URLs changed:', changed)
Run Code Online (Sandbox Code Playgroud)

编辑:供您参考,这是解释器的完整回溯:

Traceback (most recent call last):
  File "C:\Documents and Settings\g41092\My Documents\palScript.py", line 13, in <module>
    for row …
Run Code Online (Sandbox Code Playgroud)

python csv file-io python-3.x

7
推荐指数
1
解决办法
2万
查看次数

如何使用Python从Sybase数据库执行SQLAlchemy中的表反射/内省?

一些有用的计算器用户指出的是无论是pyodbc也不蟒蛇,SYBASE插件支持在SQLAlchemy中的Sybase表反映.

所以,我的问题是:是否有任何替代方案可用于反映Sybase部署中表的数据库元数据?或者,如果那是不可能的,有没有一种巧妙的方法来修补和/或破解解决方案以下拉表格元数据以进行解析和查询构建?

python sql sybase sqlalchemy introspection

4
推荐指数
1
解决办法
1030
查看次数

如何使用Python的内置.csv编写器模块替换列?

我需要在一个巨大的Excel .csv文件中进行查找和替换(特定于一列URL).由于我正处于尝试自学脚本语言的开始阶段,我想我会尝试在python中实现该解决方案.

我在解决方案的"替换"部分遇到了麻烦.我已经阅读了关于如何使用编写器官方csv模块文档,但对我来说还没有一个足够清晰的例子(是的,我很慢).那么,现在问题是:如何使用writer对象迭代csv文件的行?

ps为笨拙的代码提前道歉,我还在学习:)

import csv

csvfile = open("PALTemplateData.csv")
csvout = open("PALTemplateDataOUT.csv")
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
writer = csv.writer(csvout, dialect)

total=0;
needchange=0;
changed = 0;
temp = ''
changeList = []

for row in reader:
    total=total+1
    temp = row[len(row)-1]
    if '/?' in temp:
        needchange=needchange+1;
        changeList.append(row.index)

for row in writer:           #this doesn't compile, hence the question
    if row.index in changeList:
        changed=changed+1
        temp = row[len(row)-1]
        temp.replace('/?', '?')
        row[len(row)-1] = temp
        writer.writerow(row)

print('Total URLs:', total) …
Run Code Online (Sandbox Code Playgroud)

python csv file-io

1
推荐指数
1
解决办法
4224
查看次数

Python子进程在.csv上调用bcp:'意外的eof'

尝试使用Python的csv.writer生成的bcp文件时,我遇到了EOF问题.我做了大量的谷歌搜索,没有运气,所以我转向你有用的人在SO

这是错误消息(在subprocess.call()行上触发):

Starting copy...
Unexpected EOF encountered in BCP data-file.
bcp copy in failed
Run Code Online (Sandbox Code Playgroud)

这是代码:

sel_str = 'select blahblahblah...'
result = engine.execute(sel_str)  #engine is a SQLAlchemy engine instance

# write to disk temporarily to be able to bcp the results to the db temp table
with open('tempscratch.csv','wb') as temp_bcp_file:
    csvw = csv.writer(temp_bcp_file)
    for r in result:
        csvw.writerow(r)
        temp_bcp_file.flush()

# upload the temp scratch file
bcp_string = 'bcp tempdb..collection in @INFILE -c -U username -P password -S DSN'
bcp_string = string.replace(bcp_string,'@INFILE','tempscratch.csv') …
Run Code Online (Sandbox Code Playgroud)

python csv sqlalchemy bcp eof

1
推荐指数
1
解决办法
2527
查看次数

标签 统计

python ×5

csv ×3

file-io ×2

sqlalchemy ×2

bcp ×1

dictionary ×1

eof ×1

exception ×1

introspection ×1

key ×1

python-3.x ×1

sql ×1

sybase ×1