2017-07-26 102 views
0

我正在开发一个项目,其中包含一些阿拉伯数据。一项任务需要我为某些字典创建数据库映射。我不读阿拉伯文,但借助谷歌翻译和原始英文版数据,我可以推测哪些阿拉伯字符串映射到数据库列。在MacOS上使用Python进行阿拉伯语

我面临的问题是,当我使用复制/粘贴在他们身上的Python/MacOS/Something似乎正在转换连字(?),这导致我的代码无法识别某些字典。

我相信我有办法解决这个问题,但鉴于我正在做的工作的性质,我想了解发生了什么。

阿拉伯语原文关键是这样的:

original

然而,当我复制/粘贴在MacOS,将其转换为以下几点:

enter image description here

谷歌翻译, MacOS,Safari等等都似乎认为这些是相同的文本,但是Python在遇到原始文件时不同意并抛出KeyError(由于系统已将其转换为第二版本)E如果我在这里粘贴它,它会转换:类别

有没有一种方法可以在系统级别处理此文本,而不会导致它转换为Python无法识别的内容?

+1

原文是错误的,并认为是错字,粘贴时得到的关键是正确的单词'(类别)' –

+0

@MoeA在这种情况下,我需要保留拼写错误以映射350k条目我必须到数据库列。你知道我能如何迫使MacOS忽略这个错误吗? – Clay

+1

这个问题似乎是关于你的操作系统的处理复制和粘贴,而不是一个编程问题,这将更适合[超级用户](https://superuser.com)。 – vossad01

回答

0

万一有人发现这一点,并运行到类似的问题...

我需要什么做的是通过350K结构阿拉伯记录解析(尽管不是全部具有相同的架构),提取关键值,将它们映射到英文数据库列名称,然后将原始记录插入到表中。我会创建一套独特的键,将其打印到屏幕上,然后将其复制/粘贴到文本编辑器中,将其转换为字典,并使用阿拉伯字作为字典键和英文列名作为值。除此之外,我没有注意到,当我粘贴一组阿拉伯文字段名称时,系统“修复”了阿拉伯文拼写错误,导致解析记录时不再识别的键名。

为了解决这个问题,我创建了一个SQLite数据库,并将它们插入一个也包含空白“标准化”列的表格中,而不是将阿拉伯列名称(其中有32个)打印到屏幕上。然后我进入SQLite并更新记录以将英语映射到阿拉伯语。然后,我将表格读回Python,并创建了一个查找字典,这是我在解析完整数据有效负载时使用的。将阿拉伯文插入到SQLite中并不能“纠正”我的拼写错误,因此,从那里提取的记录用作精确查找。

查找表结束这样看:

enter image description here

尽管如此努力,我从来没有想出如何获得的MacOS制止纠正拼写错误的阿拉伯语。