【问题标题】:Issue with json loadsjson加载问题
【发布时间】:2018-03-11 16:38:12
【问题描述】:

假设我有一个以下文件:

{"id":"3234", "brand": "xyz", "binary":"fdsjl2j3jrl90i0ife"}
{"id":"4332", "brand": "abc", "binary":"hshgfdgfdsl90i0fsf"}
{"id":"2542", "brand": "wtr", "binary":"gfdgf22332l90i0ife"}
{"id":"9922", "brand": "kjl", "binary":"fdsjl23gssdsfwe223"}

当我运行以下函数时:

import json

filename = 'udata'
filename2 = 'odata'

#initialize list
records = []

#add records from the file to the list
with open(filename) as f:
    for line in f:
        print(json.loads(line))

records 用单引号('')而不是“”返回数据

{'id': '2542', 'brand': 'wtr', 'binary': 'gfdgf22332l90i0ife'}
{'id': '3234', 'brand': 'xyz', 'binary': 'fdsjl2j3jrl90i0ife'}
{'id': '4332', 'brand': 'abc', 'binary': 'hshgfdgfdsl90i0fsf'}
{'id': '9922', 'brand': 'kjl', 'binary': 'fdsjl23gssdsfwe223'}

想要的输出:

{"id":"3234", "brand": "xyz", "binary":"fdsjl2j3jrl90i0ife"}
{"id":"4332", "brand": "abc", "binary":"hshgfdgfdsl90i0fsf"}
{"id":"2542", "brand": "wtr", "binary":"gfdgf22332l90i0ife"}
{"id":"9922", "brand": "kjl", "binary":"fdsjl23gssdsfwe223"}

【问题讨论】:

  • 这些在 Python 中的含义相同。如果你只是想打印出 JSON 原样,为什么要将它反序列化为 dict? print(line)
  • 我不确定您的“问题”是什么。您没有在此代码中使用 json.dumps,而是使用 json.loads;之后它会正确显示 Python 数据结构。您认为这里有什么问题?
  • 字典只包含字符串,没有嵌入引号。没有办法强制 python 显示带有特定引号字符的字符串。你为什么关心这个?
  • 记录是空列表,你没有添加任何东西,为什么你认为它返回除了[]之外的东西?
  • 我想使用 id 对它们进行排序并在不使用 pandas 的情况下输出到文件

标签: python json python-3.x


【解决方案1】:

这真的不是问题。它们的意思完全相同。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2015-03-02
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多