我有一个简单的python/pyqt应用程序,它将数据插入到SQLITE数据库表中, 有些条目包含特殊字符,如元音变音。 我使用eclipse进行开发,对其进行了测试,并成功地插入了所有数据,没有出现任何错误。 然后我决定为我的应用程序创建一个可执行文件。我使用py2exe创建可执行文件。我的设置.py如下所示
from distutils.core import setup
import py2exe
import os
includes=["sqlite3","sip","PyQt4", "PyQt4.QtGui"]
excludes=[]
packages=[]
dll_excludes=['libgdk-win32-1.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll', 'tk84.dll']
setup(
options={"py2exe": {"compressed": 2,
"optimize": 2,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 2,
"dist_dir": "dist",
"xref": False,
"skip_archive": False,
"ascii": False,
"custom_boot_script": '',
}
},
windows=['MainWindow.py'],
)
当我在一个“dist”文件夹中得到一个可执行的应用程序时,它似乎可以正常工作,当我插入相同的数据时,它会在特殊字符(元音变音符)处出现。我成功地插入了100个条目中的60个,第一次出现重音字符会导致可执行文件出现错误消息
(, UnicodeEncodeError('ascii', u'Citro\xebnCX', 5, 6, 'ordinal not in range(128)'), )
碰巧我把雪铁龙塞进了桌子里,“e”是法国口音的字符
我不知道为什么当我在eclipse环境中运行python/pyqt应用程序时,没有出现错误,但是一旦我创建了一个可执行文件,就会出现这个错误。在
我应该在安装文件中做什么更改
这对我很有效。不是原始解决方案,在SO How to set default encoding in Python (setdefaultencoding() function does not exist)?上看到的
使用Jackson,您可以为JSON编写自己的反序列化程序,并根据需要读取:
但我建议您使内部结构更接近原始Json:
正如您所见,如果您提供正确的映射,Jackson能够为您完成所有工作。它将帮助您获得更清晰的代码,每个节点都有单独的实例,并且不会在一个数组中混合所有对象,这看起来像是糟糕的设计
根据需要尝试此功能
java中有多个json解析库
例如,您可以使用javax。json
那样的话你可以
但我应该注意到,您试图创建的结构毫无意义,而且非常不类似java。我建议您创建适当的类来代表活动、场地和投标。它最终会让你的生活更轻松
相关问题 更多 >
编程相关推荐