如何从python中的Dictionary数据中删除unicode字符

Mav*_*ick 7 python unicode json

使用请求库后,我在response.json()中得到了dict

{u'xyz': {u'key1': None, u'key2': u'Value2'}}
Run Code Online (Sandbox Code Playgroud)

我想删除所有unicode字符并仅打印键值对而不使用unicode字符

我尝试过以下方法删除,但它显示格式错误的字符串

>>> import json, ast
>>> c = {u'xyz': {u'key1': None,u'key2': u'Value2'}}
>>> ast.literal_eval(json.dumps(c))
Run Code Online (Sandbox Code Playgroud)

获取'ValueError:格式错误的字符串'

关于如何做的任何建议?

S.K*_*kat 5

此代码段将帮助您保留没有 unicode 前缀符号的数据u

>>> import json
>>> c = {u'xyz': {u'key1': u'Value1',u'key2': u'Value2'}}
>>> print c
{u'xyz': {u'key2': u'Value2', u'key1': u'Value1'}}
>>> d = eval(json.dumps(c))
>>> print d
{'xyz': {'key2': 'Value2', 'key1': 'Value1'}}
Run Code Online (Sandbox Code Playgroud)

json.dumps()将 dict 转换为字符串类型,而eval()将反转它。

注意:出于测试目的,key1 值已从 None 更改为“value1”


Oha*_*Lad 4

将“无”更改为“无”:

 c = {u'xyz': {u'key1': 'None', u'key2': u'Value2'}}
Run Code Online (Sandbox Code Playgroud)

这是选角问题 - ast 喜欢 str 的

另外,也许你想将所有 None 更改为空 str 或“None” str ...请参阅此线程: Python:将 None 转换为空字符串的最惯用的方法? 使用此代码,我将空字符串更改为“无”:

def xstr(s):
    if s is None:
        return 'None'
    return str(s)
Run Code Online (Sandbox Code Playgroud)