亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Python 中訪問字典對象轉儲中的項目

在 Python 中訪問字典對象轉儲中的項目

喵喔喔 2023-03-08 17:26:08
我從我們的客戶那里得到了一個奇怪的數據集。這是一個.json文件,但里面看起來像下面{"a":"aaa","b":"bbb","text":"hello"}{"a":"aaa","b":"bbb","text":"hi"}{"a":"aaa","b":"bbb","text":"hihi"}如您所見,這只是字典對象的轉儲。它既不是列表([]對象之間沒有逗號分隔符)也不是適當的,JSON盡管文件擴展名為.json. 所以我真的很困惑如何閱讀這個文件。我只關心text從每個字典對象中讀取所有鍵。
查看完整描述

6 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

這個“奇怪的數據集”實際上是一種基于 JSON 的現有格式,稱為JSONL。


正如@user655321 所說,您可以解析每一行。這是一個更完整的示例,其中包含 dicts 列表中可用的完整數據集dataset:


import json


dataset = []

with open("my_file.json") as file:

    for line in file:

        dataset.append(json.loads(line))


查看完整回答
反對 回復 2023-03-08
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

In [51]: [json.loads(i)["text"] for i in open("file.json").readlines()]

Out[51]: ['hello', 'hi', 'hihi']

使用列表理解,更容易


查看完整回答
反對 回復 2023-03-08
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

您可以逐行閱讀它,并將這些行轉換為 JSON 對象,并text根據您的情況提取所需的數據。


您可以執行以下操作:


import json

lines = open("file.txt").readlines()

for line in lines:

  dictionary = json.loads(line)

  print(dictionary["text"])


查看完整回答
反對 回復 2023-03-08
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

由于它不是單個 JSON 文件,您可以逐行讀取輸入并獨立反序列化它們:

import jsonwith open('my_file.json') as fh:   for line in fh:
      json_obj = json.loads(line)
      keys = json_obj.keys() # eg, 'a', 'b', 'text'
      text_val = json_obj['text'] # eg, 'hello', 'hi', or 'hihi'


查看完整回答
反對 回復 2023-03-08
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

如何通過\n使用 json 加載每個字典來拆分內容?就像是:

import jsonwith open(your_file) as f:
    data = f.read()

my_dicts = []for line in data.split():
    my_dicts.append(json.loads(line))


查看完整回答
反對 回復 2023-03-08
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

import ast

with open('my_file.json') as fh:

     for line in fh:

         try:

             dict_data = ast.literal_eval(line)

             assert isinstance(dict_data,dict)

             ### Process Dictionary Data here or append to list to convert to list of dicts

         except (SyntaxError, ValueError, AssertionError):

             print('ERROR - {} is not a dictionary'.format(line))


查看完整回答
反對 回復 2023-03-08
  • 6 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號