【发布时间】:2019-01-09 14:00:12
【问题描述】:
我从 CSV 文件中读取了以下 Unicode:
line = u"{u'There's Still Time': u'foo'}"
我希望能够将其转换为字典,以便可以按以下方式访问它:
line["There's Still Time"]
Output: 'foo'
请帮忙。
【问题讨论】:
-
您使用的是 Python 2 还是 Python 3? Python 3 默认支持 Unicode,你应该尽可能使用它。
-
@RobRose 这根本不是问题。问题是 OP 将 dict 对象的字符串表示形式转储到 csv 文件中,现在必须对其进行反序列化。 真正的 解决方案是从一开始就使用适当的序列化格式。如果这不可能,他们可以使用链接的重复目标中的一种方法。
-
你真的应该选择更好的序列化格式。不要只是将对象的字符串表示形式转储到文件中并称之为序列化。
-
撇号使其语法无效,您将找不到解决方案。理解该文本的唯一方法是制定一个规则,即必须忽略错误位置的撇号。这是一个非常定制的要求。
-
这个 CSV 文件是如何创建的?如果没有启发式(a)编写和测试不平凡,并且(b)在某些情况下可能是错误的,则无法对其进行解析,从而产生垃圾。如果 CSV 文件来自您编写的代码、同事编写的代码或您支付或合作的公司编写的代码,则修复该代码并生成正确的 CSV 文件。这将比提出和实施尝试修复损坏数据的启发式方法更容易、更好。
标签: python dictionary converter unicode-string