私はPythonを初めて使いました。これを使用して私の場合のコードを作成しようとしましたlinkjsonファイルからデータフレームに完全なデータをロードできませんでした
私は200kjsonファイルを持っており、それをデータフレームに入れる必要があります。
これを実現するために、私はこのような私の問題のサンプルケースを作った。
サブディレクトリにjsonファイルを含む 'test'フォルダがあります。ディレクトリは次のようになります。
test>test1>test1> 3 json files
test>test2>test2> 3 json files
test>test3>test3> 3 json files
9つのjsonファイルをすべてデータフレームに入れようとしています。次のように私のコードは次のとおりです。
import json
import os
import pandas as pd
import json
jpath='C:\\Users\\Sharath\\Desktop\\test'
result=[]
for i in os.listdir(jpath):
k=os.path.join(jpath,i)
for j in os.listdir(k):
l=os.path.join(k,j)
result.append(l)
print(result)
['C:\\Users\\Sharath\\Desktop\\test\\test1\\test1', 'C:\\Users\\Sharath\\Desktop\\test\\test2\\test2', 'C:\\Users\\Sharath\\Desktop\\test\\test3\\test3']
jsons_data = pd.DataFrame(columns=['homepage_url', 'number_of_employees', 'email_address'])
for i in range(len(result)):
for j in os.listdir(result[i]):
with open(os.path.join(result[i],j)) as jfile:
jtext=json.load(jfile)
homepage_url = jtext['homepage_url']
number_of_employees = jtext['number_of_employees']
email_address = jtext['email_address']
jsons_data.loc[index]=[homepage_url,number_of_employees,email_address]
print(jsons_data)
homepage_url number_of_employees email_address
2 http://www.01tek.com 1.0 [email protected]
homepage_url number_of_employees email_address
2 http://www.123listo.com NaN [email protected]
homepage_url number_of_employees email_address
2 http://www.immortaloutdoors.com NaN
homepage_url number_of_employees \
2 http://www.1on1fitnesstraining.com 50.0
email_address
2 [email protected]
homepage_url number_of_employees email_address
2 http://1onlybat.bigcartel.com NaN [email protected]
homepage_url number_of_employees email_address
2 http://www.1doc3.com 5.0 [email protected]
homepage_url number_of_employees email_address
2 http://1phoneapp.com 10.0
homepage_url number_of_employees email_address
2 None NaN
homepage_url number_of_employees \
2 http://www.1stalliancelending.com 51.0
email_address
2 [email protected]
私はjsons_dataを呼び出すことにより、データフレームを見しようとすると、以下のように、結果は次のとおりです。
私は取得しています理由を理解することができませんでしよ索引2を使用した結果は1つだけです。 この方法を使用して、データフレーム内の9つのファイルをすべて取得する方法を教えてください。
に変更
私はあなたがどこでも、あなたのコード内の変数 'index'を割り当てたり更新したとは思いません。そうであれば、それは常にゼロに等しく、最後のリストには処理された最後のファイルのうちの1つの結果が含まれます。 –
pd.read_json()を考慮し、データフレームを連結しましたか?ファイルの平均サイズはどれくらいですか?これはオプションかもしれません。 リンク内のアプローチに従う場合は、@ K.A.Buhrで述べたように、インデックスを更新する必要があります(使用しているリンクを注意深く見て、インデックス変数を更新します)。 – fedepad