开发者社区> 问答> 正文

如何使函数返回内容为字符串,而不是 Dict 字典

我有一个名为“ random-words”的程序包,它每天都会生成一个随机单词。

这是主程序:

from random_word import RandomWords

r = RandomWords()
word = r.word_of_the_day()
print( word )

这是输出:

'{"word": "daedal", "definations": [{"source": "gcide", "text": "Cunningly or ingeniously formed or working; skillful; artistic; ingenious.", "note": null, "partOfSpeech": "adjective"}, {"source": "gcide", "text": "Crafty; deceitful.", "note": null, "partOfSpeech": "adjective"}]}'

我知道这是一个简单的问题,但是我可以在Web上找到任何东西,除了使用`exec()的页面之外。返回类型是字符串,我不能像字典一样使用它。我该如何处理?我尝试使用exec(),eval()或转换为list(),dict()甚至set(),但是没有任何效果。

这是使用exec()时的代码:

from random_word import RandomWords

r = RandomWords()
word = exec(r.word_of_the_day())

这是错误消息:

Traceback (most recent call last):
  File "c:\Users\filip\Desktop\test_words.py", line 4, in <module>
    word = exec(r.word_of_the_day())
  File "<string>", line 1, in <module>
NameError: name 'null' is not defined

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 21:32:33 571 0
1 条回答
写回答
取消 提交回答
  • 您可以使用json.loads https://docs.python.org/3/library/json.html

    import json
    
    string_val = '{"word": "daedal", "definations": [{"k":"v"}]}'
    dict_val = json.loads(string_val)
    
    print(dict_val['word'])
    

    输出

    daedal
    

    回答来源:stackoverflow

    2020-03-24 21:32:39
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载