簡體   English   中英

如何將 JSON 格式文本轉換為 dataframe?

[英]How can I convert JSON format text to dataframe?

我正在嘗試將低於 JSON 格式的文本轉換為 pandas 或 spark 數據幀,但它給出了以下錯誤。

錯誤:JSONDecodeError:期望用雙引號括起來的屬性名稱:第 1 行第 2 列(字符 1)

Python 代碼:

# import pandas to read json file
import json
path = "sample.json"
with open(path, 'r') as myfile:
    data=myfile.read()
    data = data.replace('\t','')
    data = data.replace('\n','')
    data = data.replace(',}','}')
    data = data.replace(',]',']')
obj = json.loads(data)

JSON 文件格式

在此處輸入圖像描述

Output 讀取后的數據。json 文件通過使用打開 function

在此處輸入圖像描述

如何將以上文本轉換為數據框?

我明白了,我添加了幾行代碼

path = "sample.json"
with open(path, 'r') as myfile:
    data=myfile.read()
    data = data.replace('\t','')
    data = data.replace('\n','')
    data = data.replace(',}','}')
    data = data.replace(',]',']')
data = data.replace("null", "''")
liss = []
data1 = data[1:-1]
data2 = data1.split("},")
for i in data2:
  last_value = i[len(i)-1]
  if last_value != "}":
    new_text = i+"}"
    liss.append(new_text)
  else:
    new_text = i
    liss.append(new_text)
sample_df = pd.DataFrame({"Col1":liss})

sample_df["Col1"] = sample_df["Col1"].apply(lambda x : dict(eval(x)) )
df3 = sample_df["Col1"].apply(pd.Series )
df3

我認為您可以閱讀 json 並將其保存在字典中。 一旦你有了這本字典,你就可以用下面的代碼行創建一個 spark dataframe

df = spark.createDataFrame(dict)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM