在python中将字典转换为JSON

r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) file.write(str(r['rating'])) 

我无法在json中访问我的数据。 我究竟做错了什么?

 TypeError: string indices must be integers, not str 

3 Solutions collect form web for “在python中将字典转换为JSON”

json.dumps()将字典转换为str对象,而不是json(dict)对象! 所以你必须通过使用json.loads()方法将你的str加载到字典中来使用它

请参阅json.dumps()作为保存方法,并将json.loads()作为检索方法。

这是代码示例,可以帮助您更好地理解它:

 import json r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) loaded_r = json.loads(r) loaded_r['rating'] #Output 3.5 type(r) #Output str type(loaded_r) #Output dict 

json.dumps()返回python字典的JSONstring表示forms。 看文档

你不能做r['rating']因为r是一个string,而不是字典了

也许你的意思是类似的

 r = {'is_claimed': 'True', 'rating': 3.5} json = json.dumps(r) # note i gave it a different name file.write(str(r['rating'])) 

不需要使用json.dumps()来转换string

 >>> f = open("t.txt",'w') >>> r = {'is_claimed': 'True', 'rating': 3.5} >>> f.write(r['is_claimed']) >>> f.write(r['rating']) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: expected a character buffer object 

必须是文件中写入string,但评价值是浮动的,所以先转换为string,然后尝试它。 它希望有效。

  • Python:如何获得运行os.system后的stdout?
  • 通过pip安装py2exe for python 2.7:这个包需要Python 3.3或更高版本
  • 阻塞和不阻塞子stream程调用
  • Python脚本每天在同一时间做些事情
  • 有没有办法将可选parameter passing给函数?
  • Python检查string的第一个和最后一个字符
  • Python lambdaclosures范围
  • 如何遍历Python中的字母表?
  • UnicodeDecodeError:'ascii'编解码器无法解码位置13中的字节0xe2:序号不在范围内(128)
  • 没有名为setuptools的模块
  • 获取一个类的属性