作为从JSON API调用解析的多级字典,我有很多输入.字符串都是unicode,这意味着有很多u'stuff like this'.我正在使用jq来处理结果,需要将这些结果转换为ASCII.

我知道我可以编写一个函数来像这样转换它:

def convert(input):

if isinstance(input, dict):

ret = {}

for stuff in input:

ret = convert(stuff)

elif isinstance(input, list):

ret = []

for i in range(len(input))

ret = convert(input[i])

elif isinstance(input, str):

ret = input.encode('ascii')

elif :

ret = input

return ret

这甚至是正确的吗?不确定.这不是我想问你的.

我要问的是,这是解决问题的典型蛮力解决方案.肯定有更好的办法.一种更加pythonic的方式.我不是算法专家,但这个也不是特别快.

那么还有更好的方法吗?或者如果没有,可以改进这个功能......?

回答后编辑

Mark Amery的回答是正确的,但我想发布它的修改版本.他的函数适用于Python 2.7+而我在2.6上,所以不得不转换它:

def convert(input):

if isinstance(input, dict):

return dict((convert(key), convert(value)) for key, value in input.iteritems())

elif isinstance(input, list):

return [convert(element) for element in input]

elif isinstance(input, unicode):

return input.encode('utf-8')

else:

return input

python构建字典实现英文大写字母与ascii编码的转换_Python:将复杂的字符串字典从Unicode转换为ASCII...相关推荐

  1. 习题 6.10 有一篇文章,共有三行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

    C程序设计(第五版) 谭浩强 习题6.10 题目描述 思路 答案 输出结果 更多题目 题目描述 有一篇文章,共有三行文字,每行有80个字符.要求分别统计出其中英文大写字母.小写字母.数字.空格以及其他 ...

  2. 小白c语言学习笔记(2)——有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。

    题:有一篇文章,共有3行文字,每行有80个字符.要求分别统计出其中英文大写字母.小写字母.数字.空格以及其它字符的个数. #include<stdio.h> #include<str ...

  3. 有一篇文章,共有 3 行文字,每行有 80 个字符。编写程序分别统计出其中英文大写 字母、英文小写字母、数字、空格以及其他字符的个数

    /* 2020-4-29 20:39 作者:nyc 功能:有一篇文章,共有 3 行文字,每行有 80 个字符.编写程序分别统计出 其中英文大写 字母.英文小写字母.数字.空格以及其他字符的个数 */ ...

  4. 【最简易c语言】有一篇文章,共有3行文字,每行有80个字符。要求分别统计其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

    有一篇文章,共有3行文字,每行有80个字符.要求分别统计其中英文大写字母.小写字母.数字.空格以及其他字符的个数. #include <stdio.h> void main(){int i ...

  5. (C语言)有一篇文章,共有3行文字,每行有80个字符。要求统计出其中英文大写字母,小写字母,数字,空格,其他字符的个数

    有一篇文章,共有3行文字,每行有80个字符.要求统计出其中英文大写字母,小写字母,数字,空格,其他字符的个数 #include<stdio.h> #include<stdlib.h& ...

  6. 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数。谭浩强《C程序设计课后习题》第6章第10题。

    题目 本题是谭浩强<C程序设计课后习题>第6章第10题. 题目:有一篇文章,共有3行文字,每行有80个字符.要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数. 以下是 ...

  7. 7-201 输出前n个英文大写字母

    7-201 输出前n个英文大写字母 从键盘输入一个正整数n(我们约定输入的数不大于26).输出前n个大写英文字母. 输入格式: 一个正整数n(我们约定输入的数不大于26). 输出格式: 前n个大写英文 ...

  8. PATA 7-201 输出前n个英文大写字母

    PATA 7-201 输出前n个英文大写字母 分数 40 作者 伍建全 单位 重庆科技学院 从键盘输入一个正整数n(我们约定输入的数不大于26).输出前n个大写英文字母. 输入格式: 一个正整数n(我 ...

  9. 2022-10-29 工作记录--JS-获取到26个英文大写字母和26个英文小写字母

    JS-获取到26个英文大写字母和26个英文小写字母 // JS-获取到26个英文大写字母(A-Z) Array(26).fill('').map((item,index) => {console ...

最新文章

  1. 简单探讨隐私增强技术的类型和用途
  2. McAfee----McAfee 2008 中文版
  3. 【java8中的时间操作】java8中获取月的最后一天或者总天数,JDK8 LocalDate AP
  4. Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
  5. Java-进阶:多线程2
  6. 华为服务器清除系统日志,清空服务器日志
  7. 1137.第N个泰波那契数
  8. 【数学建模】基于matlab重庆三号线地铁运行仿真【含Matlab源码 042期】
  9. Everything 如何搜索共享文件夹的内容
  10. 正则表达式 RegExp【详解】
  11. 高级与低级编程语言的解释,哪一种更容易上手?
  12. wps文字表格制作拼音田字格模板_宝宝拼音汉字田字格doc模板下载
  13. Windows10新版本设置卓越性能
  14. 690家门店送万份小食 汉堡王“战舰世界堡胃战”活动开启
  15. Android电池信息的获取
  16. 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)
  17. Kotlin高仿微信-第6篇-主页-我的
  18. tableau连接MySQL
  19. 判断质数和用算数基本定理分解质因数
  20. 服务号模板消息群发二代服务器,服务号模板消息群发

热门文章

  1. 从移动广告业务“长出”的新增长点,汇量科技进军云服务
  2. 2019年技术盘点微服务篇(一) | 程序员硬核评测
  3. 重磅!英特尔终于挤出10nm芯片 六大技术战略,震动芯片届
  4. template might not exist or might not be accessible by any of the configured
  5. 企业微信_新建自建H5小程序应用及主页与菜单设置
  6. 解决前后端交互Long类型精度丢失的问题
  7. linux上传下载文件命令rz、sz
  8. 企业实战_04_MyCat常用配置文件详解
  9. Git + GitHub 超详细知识笔记整理
  10. html-iframe内联框架