Python:json.loads 返回前缀为“u”的项目

新手上路,请多包涵

我将从 Objective-C 接收一个 JSON 编码的字符串,并且我正在解码一个虚拟字符串(目前),如下面的代码。我的输出以字符“u”作为每个项目的前缀:

 [{u'i': u'imap.gmail.com', u'p': u'aaaa'}, {u'i': u'333imap.com', u'p': u'bbbb'}...

JSON 是如何添加这个 Unicode 字符的?删除它的最佳方法是什么?

 mail_accounts = []
da = {}
try:
    s = '[{"i":"imap.gmail.com","p":"aaaa"},{"i":"imap.aol.com","p":"bbbb"},{"i":"333imap.com","p":"ccccc"},{"i":"444ap.gmail.com","p":"ddddd"},{"i":"555imap.gmail.com","p":"eee"}]'
    jdata = json.loads(s)
    for d in jdata:
        for key, value in d.iteritems():
            if key not in da:
                da[key] = value
            else:
                da = {}
                da[key] = value
        mail_accounts.append(da)
except Exception, err:
    sys.stderr.write('Exception Error: %s' % str(err))

print mail_accounts

原文由 janeh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 709
2 个回答

u- 前缀仅表示您有一个 Unicode 字符串。当您真正使用该字符串时,它不会出现在您的数据中。不要被打印输出抛出。

例如,试试这个:

 print mail_accounts[0]["i"]

你不会看到你。

原文由 Ned Batchelder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题