Làm cách nào để xem nhiều tệp json trong python?

Một tùy chọn là liệt kê tất cả các tệp trong một thư mục có os. listdir và sau đó chỉ tìm những cái kết thúc bằng '. json'

Nội dung chính Hiển thị

  • Làm cách nào để đọc tất cả các tệp JSON trong một thư mục bằng Python?
  • Bạn có thể nhập tệp JSON bằng Python không?
  • Làm cách nào để đọc nhiều tệp JSON trong Pyspark?
  • Làm cách nào để bạn phân tích danh sách JSON trong Python?

import os, json
import pandas as pd

path_to_json = 'somedir/'
json_files = [pos_json for pos_json in os.listdir[path_to_json] if pos_json.endswith['.json']]
print[json_files]  # for me this prints ['foo.json']

Bây giờ bạn có thể sử dụng DataFrame của gấu trúc. from_dict để đọc trong json [từ điển python tại thời điểm này] sang khung dữ liệu gấu trúc

montreal_json = pd.DataFrame.from_dict[many_jsons[0]]
print montreal_json['features'][0]['geometry']

bản in

{u'type': u'Point', u'coordinates': [-73.6051013, 45.5115944]}

Trong trường hợp này, tôi đã thêm một số json vào danh sách

montreal_json = pd.DataFrame.from_dict[many_jsons[0]]
print montreal_json['features'][0]['geometry']
0. json đầu tiên trong danh sách của tôi thực sự là một geojson với một số dữ liệu địa lý về Montreal. Tôi đã quen thuộc với nội dung nên tôi in ra 'hình học' để cho tôi vĩ độ/vĩ độ của Montreal

Đoạn mã sau tổng hợp mọi thứ ở trên

import os, json
import pandas as pd

# this finds our json files
path_to_json = 'json/'
json_files = [pos_json for pos_json in os.listdir[path_to_json] if pos_json.endswith['.json']]

# here I define my pandas Dataframe with the columns I want to get from the json
jsons_data = pd.DataFrame[columns=['country', 'city', 'long/lat']]

# we need both the json and an index number so use enumerate[]
for index, js in enumerate[json_files]:
    with open[os.path.join[path_to_json, js]] as json_file:
        json_text = json.load[json_file]

        # here you need to know the layout of your json and each json has to have
        # the same structure [obviously not the structure I have here]
        country = json_text['features'][0]['properties']['country']
        city = json_text['features'][0]['properties']['name']
        lonlat = json_text['features'][0]['geometry']['coordinates']
        # here I push a list of data into a pandas DataFrame at row given by 'index'
        jsons_data.loc[index] = [country, city, lonlat]

# now that we have the pertinent json data in our DataFrame let's look at it
print[jsons_data]

đối với tôi bản in này

  country           city                   long/lat
0  Canada  Montreal city  [-73.6051013, 45.5115944]
1  Canada        Toronto  [-79.3849008, 43.6529206]

Có thể hữu ích khi biết rằng đối với mã này, tôi có hai Geojson trong tên thư mục 'json'. Mỗi json có cấu trúc sau

{"features":
[{"properties":
{"osm_key":"boundary","extent":
[-73.9729016,45.7047897,-73.4734865,45.4100756],
"name":"Montreal city","state":"Quebec","osm_id":1634158,
"osm_type":"R","osm_value":"administrative","country":"Canada"},
"type":"Feature","geometry":
{"type":"Point","coordinates":
[-73.6051013,45.5115944]}}],
"type":"FeatureCollection"}

So sánh dữ liệu từ nhiều tệp JSON có thể trở nên khó hiểu – trừ khi bạn tận dụng Python để cung cấp cho bạn dữ liệu bạn cần

Tôi thường theo dõi các chỉ số tốc độ trang chính bằng cách kiểm tra các trang web bằng WebPagetest hoặc Google Lighthouse bằng các công cụ CLI hoặc Node của họ. Tôi lưu kết quả kiểm tra dưới dạng JSON, điều này tốt cho việc xem các ảnh chụp nhanh riêng lẻ sau này. Nhưng tôi thường kết thúc với các thư mục chứa đầy dữ liệu mà thực sự không thể phân tích thủ công

working_directory
└───data
    ├───export1.json
    ├───export2.json
    ├───export3.json
    ├───...

Ví dụ: làm cách nào để so sánh các thay đổi trong các số liệu đó theo thời gian?

Tập lệnh Python 3 nhỏ tiện dụng sau đây rất hữu ích để chọn lọc qua một thư mục chứa đầy các tệp JSON và xuất các giá trị cụ thể sang CSV để phân tích đặc biệt. Nó chỉ sử dụng các mô-đun Python tích hợp. Tôi chỉ cần thả nó vào thư mục làm việc của mình và chạy nó qua dòng lệnh với

montreal_json = pd.DataFrame.from_dict[many_jsons[0]]
print montreal_json['features'][0]['geometry']
0

json-to-csv-xuất khẩu. py

________số 8

Điều đó cung cấp cho bạn một CSV mà bạn có thể sử dụng để tạo biểu đồ hoặc phân tích nội dung trái tim của mình

| Requested URL           | Date                     | Performance Score | LCP                | Speed Index        | FID | CLS                 | CPU Idle           | Total Byte Weight |
| ----------------------- | ------------------------ | ----------------- | ------------------ | ------------------ | --- | ------------------- | ------------------ | ----------------- |
| //www.example.com | 2020-08-26T11:19:42.608Z | 0.96              | 1523.257           | 1311.5760337571400 | 153 | 0.5311671549479170  | 1419.257 301319    | 301319            |
| //www.example.com | 2020-08-26T11:32:16.197Z | 0.99              | 1825.5990000000000 | 2656.8016986395200 | 496 | 0.06589290364583330 | 1993.5990000000000 | 301282            |

Làm cách nào để đọc tất cả các tệp JSON trong một thư mục bằng Python?

Đọc tệp JSON bằng Python .

Nhập mô-đun json

Mở tệp bằng tên của tệp json bằng hàm open[]

Mở tệp bằng tên của tệp json bằng hàm open[]

Đọc tệp json bằng load[] và đặt dữ liệu json vào một biến

Bạn có thể nhập tệp JSON bằng Python không?

Python hỗ trợ JSON thông qua gói tích hợp có tên là json . Để sử dụng tính năng này, chúng tôi nhập gói json trong tập lệnh Python. Văn bản trong JSON được thực hiện thông qua chuỗi trích dẫn chứa giá trị trong ánh xạ khóa-giá trị trong { }.

Làm cách nào để đọc nhiều tệp JSON trong Pyspark?

Khi bạn sử dụng phương thức format["json"] , bạn cũng có thể chỉ định Nguồn dữ liệu theo tên đầy đủ của chúng như bên dưới

Chủ Đề