Hướng dẫn how do you parse a json column in python? - làm thế nào để bạn phân tích cú pháp một cột json trong python?

Tôi đang làm việc với các tệp CSV trong đó một số cột có một đối tượng JSON đơn giản (một số cặp giá trị chính) trong khi các cột khác là bình thường. Đây là một ví dụ:

name,dob,stats
john smith,1/1/1980,"{""eye_color"": ""brown"", ""height"": 160, ""weight"": 76}"
dave jones,2/2/1981,"{""eye_color"": ""blue"", ""height"": 170, ""weight"": 85}"
bob roberts,3/3/1982,"{""eye_color"": ""green"", ""height"": 180, ""weight"": 94}"

Sau khi sử dụng

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
3, cách hiệu quả nhất để phân tích và chia cột
import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
4 thành các cột bổ sung là gì?

Sau khoảng một giờ, điều duy nhất tôi có thể nghĩ ra là:

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))

Điều này có vẻ như tôi đang làm sai, và nó khá nhiều công việc khi xem xét tôi sẽ cần phải làm điều này trên ba cột thường xuyên.

Đầu ra mong muốn là đối tượng DataFrame bên dưới. Đã thêm các dòng mã sau để đạt được điều đó theo cách (crappy) của tôi:

df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94

JSON (ký hiệu đối tượng JavaScript) là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn dữ liệu có cấu trúc. Thông thường việc truyền và nhận dữ liệu giữa một máy chủ và ứng dụng web ở định dạng JSON.JavaScript Object Notation) is a popular data format used for representing structured data. It's common to transmit and receive data between a server and web application in JSON format.

Trong Python, JSON tồn tại như một chuỗi. Ví dụ:

p = '{"name": "Bob", "languages": ["Python", "Java"]}'

Nó cũng phổ biến để lưu trữ một đối tượng JSON trong một tệp.


Nhập mô -đun JSON

Để làm việc với JSON (chuỗi hoặc tệp chứa đối tượng JSON), bạn có thể sử dụng mô -đun

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
5 của Python. Bạn cần nhập mô -đun trước khi bạn có thể sử dụng nó.

import json

Parse json trong Python

Mô -đun

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
5 giúp dễ dàng phân tích các chuỗi và tệp JSON có chứa đối tượng JSON.


Ví dụ 1: Python JSON & NBSP; To Dict

Bạn có thể phân tích chuỗi JSON bằng phương thức

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
7. Phương pháp trả về một từ điển.

import json

person = '{"name": "Bob", "languages": ["English", "French"]}'
person_dict = json.loads(person)

# Output: {'name': 'Bob', 'languages': ['English', 'French']}
print( person_dict)

# Output: ['English', 'French']
print(person_dict['languages'])

Ở đây, người là một chuỗi JSON, và Person_dict là một từ điển.


Ví dụ 2: Python đọc tệp JSON

Bạn có thể sử dụng phương thức

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
8 để đọc một tệp có chứa đối tượng JSON.

Giả sử, bạn có một tệp có tên

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
9 có chứa đối tượng JSON.


{"name": "Bob", 
"languages": ["English", "French"]
}

Đây là cách bạn có thể phân tích tệp này:


import json

with open('path_to_file/person.json', 'r') as f:
  data = json.load(f)

# Output: {'name': 'Bob', 'languages': ['English', 'French']}
print(data)

Ở đây, chúng tôi đã sử dụng chức năng

df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
0 để đọc tệp JSON. Sau đó, tệp được phân tích cú pháp bằng phương pháp
import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
8 cung cấp cho chúng ta dữ liệu từ điển có tên.

Nếu bạn không biết cách đọc và ghi các tệp trong Python, chúng tôi khuyên bạn nên kiểm tra I/O File I/O của Python.


Python chuyển đổi sang chuỗi JSON

Bạn có thể chuyển đổi một từ điển thành chuỗi JSON bằng phương thức

df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
2.


Ví dụ 3: Chuyển đổi dict thành json


import json

person_dict = {'name': 'Bob',
'age': 12,
'children': None
}
person_json = json.dumps(person_dict)

# Output: {"name": "Bob", "age": 12, "children": null}
print(person_json)

Đây là một bảng hiển thị các đối tượng Python và chuyển đổi tương đương của chúng sang JSON.

PythonJSON tương đương
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
3
sự vật
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
4,
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
5
mảng
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
6
sợi dây
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
7,
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
8,
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
7
con số
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
0
thật
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
1
sai
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
2
vô giá trị

Viết JSON vào một tập tin

Để viết JSON vào một tệp trong Python, chúng ta có thể sử dụng phương thức

p = '{"name": "Bob", "languages": ["Python", "Java"]}'
3.


Ví dụ 4: Viết JSON vào một tệp


import json

person_dict = {"name": "Bob",
"languages": ["English", "French"],
"married": True,
"age": 32
}

with open('person.txt', 'w') as json_file:
  json.dump(person_dict, json_file)

Trong chương trình trên, chúng tôi đã mở một tệp có tên

p = '{"name": "Bob", "languages": ["Python", "Java"]}'
4 ở chế độ viết bằng cách sử dụng
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
5. Nếu tệp chưa tồn tại, nó sẽ được tạo. Sau đó,
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
3 biến đổi
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
7 thành chuỗi JSON sẽ được lưu trong tệp
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
4.

Khi bạn chạy chương trình, tệp

p = '{"name": "Bob", "languages": ["Python", "Java"]}'
4 sẽ được tạo. Các tập tin có văn bản sau bên trong nó.

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
0

Python in đẹp json

Để phân tích và gỡ lỗi dữ liệu JSON, chúng ta có thể cần in nó ở định dạng dễ đọc hơn. Điều này có thể được thực hiện bằng cách chuyển các tham số bổ sung

import json
0 và
import json
1 cho phương thức
df = df.join(pandas.read_json(stjson))
del(df['stats'])
In [14]: df

Out[14]:
          name       dob eye_color  height  weight
0   john smith  1/1/1980     brown     160      76
1   dave jones  2/2/1981      blue     170      85
2  bob roberts  3/3/1982     green     180      94
2 và
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
3.


Ví dụ 5: Python Print Print Json

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
1

Khi bạn chạy chương trình, đầu ra sẽ là:

import json
stdf = df['stats'].apply(json.loads)
stlst = list(stdf)
stjson = json.dumps(stlst)
df.join(pandas.read_json(stjson))
2

Trong chương trình trên, chúng tôi đã sử dụng không gian

import json
4 để thụt vào. Và, các phím được sắp xếp theo thứ tự tăng dần.

Nhân tiện, giá trị mặc định của thụt lề là

p = '{"name": "Bob", "languages": ["Python", "Java"]}'
2. Và, giá trị mặc định của sort_keys là
p = '{"name": "Bob", "languages": ["Python", "Java"]}'
1.


Bài đọc được đề xuất:

  • Python JSON đến CSV và ngược lại
  • Python XML đến JSON và ngược lại
  • Python Simplejson

Làm cách nào để đọc một cột JSON trong Python?

Nếu bạn có JSON trong một chuỗi, bạn có thể đọc hoặc tải nó vào gấu trúc DataFrame bằng hàm read_json (). Theo mặc định, chuỗi JSON phải ở dạng Dict như định dạng {cột -> {index -> value}}. Đây cũng được gọi là định hướng cột. Lưu ý rằng Phương Đông được sử dụng để chỉ định định dạng chuỗi JSON.using read_json() function. By default, JSON string should be in Dict like format {column -> {index -> value}} . This is also called column orientation. Note that orient param is used to specify the JSON string format.

Làm thế nào để tôi phân tích một JSON trong Python?

Nếu bạn cần phân tích một chuỗi JSON trả về từ điển, thì bạn có thể sử dụng phương thức json.Loads ().Nếu bạn cần phân tích tệp JSON trả về từ điển, thì bạn có thể sử dụng JSON.phương thức tải ().json. loads() method. If you need to parse a JSON file that returns a dictionary, then you can use the json. load() method.

Làm thế nào để bạn phân tích một mảng json trong Python?

Để phân tích tệp JSON, hãy sử dụng phương thức được ghép nối JSON.LOAD () (không có "S").Trong ví dụ Python Parse JSON này, chúng tôi chuyển đổi JSON chứa một mảng lồng vào một đối tượng Python và đọc dữ liệu theo tên và chỉ mục.Nhấp vào Thực thi để chạy ví dụ Python Parse JSON trực tuyến và xem kết quả.use the json. load() paired method (without the "s"). In this Python Parse JSON example, we convert JSON containing a nested array into a Python object and read the data by name and index. Click Execute to run the Python Parse JSON example online and see result.

Làm cách nào để đọc một dữ liệu cụ thể từ tệp JSON trong Python?

Đọc từ Json Python có một gói tích hợp có tên JSON, có thể được sử dụng để làm việc với dữ liệu JSON.Nó được thực hiện bằng cách sử dụng mô -đun JSON, cung cấp cho chúng tôi rất nhiều phương thức trong số các phương thức tải () và tải () sẽ giúp chúng tôi đọc tệp JSON.loads() and load() methods are gonna help us to read the JSON file.