【问题标题】:Unicode string to list要列出的 Unicode 字符串
【发布时间】:2014-08-08 17:39:25
【问题描述】:

我有一个字典列表,我从我的 javascript 文件发送到我的视图。 现在,当我打印列表时,它的类型显示为 unicode。我想取回我原来的清单。 我该怎么做?

我的清单:

[{"employee_id":13,"admin":false,"approver":false,"emp_code_or_email":"second@emp.com,120","manager":false,"emp_name":"second emp","department":"IT","position":"IT","new_emp":false,"manager_and_approver":false,"role_type":"employee","s_no":1},{"employee_id":144,"admin":false,"approver":false,"emp_code_or_email":"107anku@gmail.com,1","manager":true,"emp_name":"A1 A2","department":"IT","position":"Developer","new_emp":false,"manager_and_approver":false,"role_type":"manager","s_no":2}]

我只想从中获取employee_ids。

我尝试了 eval()、list()、encode('utf-8')。但无济于事。

【问题讨论】:

  • 为什么字符串现在是 unicode 值是个问题?毕竟它们是 text,Python 可以处理这种混合(前提是你不要尝试将非 ASCII 编码的数据与 Unicode 混合)。
  • 您可以已经从中获取员工ID; lst[0]['employee_id'] 无论密钥是 unicode 还是字节字符串都有效。
  • 整个列表都是 unicode。我试过你的代码,但它给了我这个错误“字符串索引必须是整数”
  • 你的意思是你有 JSON 吗?
  • employee_list = post_dict['emps'] print "emp list", employee_list, type(employee_list) for emp in employee_list: print emp, type(emp) print "id", emp[0][ 'employee_id'] 这是我试过的。

标签: python django unicode django-views


【解决方案1】:

您拥有的是 JSON 的字符串表示形式。我可以通过查看"admin":false 来告诉您,以便您获得employee_id。您首先需要将列表中的每个 json 表示形式转换为字典。

>>> import json
>>> data_raw = '''[{"employee_id":13,"admin":false,"approver":false,"emp_code_or_email":"second@emp.com,120","manager":false,"emp_name":"second emp","department":"IT","position":"IT","new_emp":false,"manager_and_approver":false,"role_type":"employee","s_no":1},{"employee_id":144,"admin":false,"approver":false,"emp_code_or_email":"107anku@gmail.com,1","manager":true,"emp_name":"A1 A2","department":"IT","position":"Developer","new_emp":false,"manager_and_approver":false,"role_type":"manager","s_no":2}]'''
>>> data_json = json.loads(data_raw)
>>> [data['employee_id'] for data in data_json]
[13, 144]
>>> 

【讨论】:

    【解决方案2】:

    当您打印任何对象时,python 将显示该对象的 python 表示。

    要以你想要的方式显示它,你应该格式化你的输出。

    但最简单的方法是将其转换为 json,因为您是从 ajax 接收的。

    import simplejson
    simplejson.dumps(data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2012-09-14
      相关资源
      最近更新 更多