【问题标题】:Convert str to dict将 str 转换为 dict
【发布时间】:2018-09-08 15:37:57
【问题描述】:

我知道这个问题已经被问及并回答了,我尝试了其中的一些,但在我的项目中没有一个起作用

json.load/json.load/ast/demjson 都给我文件错误:

file = open("C:/Users/" + getpass.getuser() + "/Wiappro/name.txt").read()
file = ast.literal_eval(file)

Traceback (most recent call last):
  File "D:\Code\Python 5.5.4\Programmes\Messagerie\client.py", line 93, in <module>
    file = ast.literal_eval(file)
  File "D:\Code\Python 5.5.4\lib\ast.py", line 46, in literal_eval
    node_or_string = parse(node_or_string, mode='eval')
  File "D:\Code\Python 5.5.4\lib\ast.py", line 35, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 0

Traceback (most recent call last):
  File "D:\Code\Python 5.5.4\Programmes\Messagerie\client.py", line 93, in <module>
    file = json.loads(file)
  File "D:\Code\Python 5.5.4\lib\json\__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "D:\Code\Python 5.5.4\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\Code\Python 5.5.4\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Traceback (most recent call last):
  File "D:\Code\Python 5.5.4\Programmes\Messagerie\client.py", line 93, in <module>
    file = demjson.decode(file)
  File "D:\Code\Python 5.5.4\lib\site-packages\demjson.py", line 5699, in decode
    return_stats=(return_stats or write_stats) )
  File "D:\Code\Python 5.5.4\lib\site-packages\demjson.py", line 4915, in decode
    raise errors[0]
demjson.JSONDecodeError: No value to decode

我不明白为什么 json.loads/ast/demjson 都在我的解释器上工作??

【问题讨论】:

  • 你应该显示file的内容。否则只能猜测。
  • 对不起,我忘了这是一个空字典:{}

标签: python json windows python-3.x


【解决方案1】:

我设法让它工作,但我不知道为什么它不工作

file = open("C:/Users/" + getpass.getuser() + "/Wiappro/name.txt").read()
file = ast.literal_eval(file)

也没有

file = open("C:/Users/" + getpass.getuser() + "/Wiappro/name.txt")
file = ast.literal_eval(file.read())

但合作过

file = open("C:/Users/" + getpass.getuser() + "/Wiappro/name.json")
read = file.read()
read = ast.literal_eval(read))

希望对其他人有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2018-11-30
    • 2019-01-19
    相关资源
    最近更新 更多