Bạn có thể gửi một số dữ liệu thực tế?
data temp;
infile 'c:\temp\have.csv' firstobs=2 length=len ;
input have $varying8000. len;
if missing[have] then delete;
if prxmatch['/^\d{1,},\d{4}/',have] then group+1;
run;
data temp2;
do until[last.group];
set temp;
by group;
length row $ 30000;
row=cats[row,have];
end;
keep group row;
run;
data want;
set temp2;
n=scan[row,1,',','mq'];
recommendationid=scan[row,2,',','mq'];
language=scan[row,3,',','mq'];
review=scan[row,4,',','mq'];
run;
Tôi cho rằng bạn muốn giữ các dòng mới trong chuỗi vì lý do nào đó sau khi bạn đã tải các tệp csv từ đĩa. Ngoài ra, điều này được thực hiện lại trong Python. Giải pháp của tôi sẽ yêu cầu Python 3, mặc dù nguyên tắc này có thể được áp dụng cho Python 2
thủ thuật chính
Điều này là để thay thế các ký tự
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
0 trước khi viết bằng một ký tự lạ mà nếu không sẽ không được đưa vào, sau đó hoán đổi ký tự lạ đó trở lại cho new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
0 sau khi đọc lại tệp từ đĩaĐối với nhân vật kỳ lạ của tôi, tôi sẽ sử dụng gai Iceland. Þ, nhưng bạn có thể chọn bất kỳ thứ gì không xuất hiện trong các biến văn bản của mình. Tên của nó, như được định nghĩa trong đặc tả Unicode chuẩn hóa là. LATIN CHỮ NHỎ THORN. Bạn có thể sử dụng nó trong Python 3 theo một số cách
weird_literal = 'þ'
weird_name = '\N{LATIN SMALL LETTER THORN}'
weird_char = '\xfe' # hex representation
weird_literal == weird_name == weird_char # True
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
2 đó khá tuyệt [và hoạt động trong python 3. 6 chuỗi được định dạng bên trong nữa]. về cơ bản, nó cho phép bạn chuyển Tên của một ký tự, theo thông số kỹ thuật của UnicodeMột ký tự thay thế có thể phục vụ như một tiêu chuẩn tốt là
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
3 [DẤU PHÂN VÔ HÌNH]Thay thế new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
0
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
Bây giờ chúng tôi sử dụng ký tự kỳ lạ này để thay thế cho
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
5. Đây là hai cách xuất hiện trong đầu tôi để đạt được điều nàysử dụng cách hiểu danh sách trên danh sách danh sách của bạn.
6new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]] for sample in data]
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]] for sample in data]
đưa dữ liệu vào một khung dữ liệu và sử dụng thay thế trên toàn bộ cột
7 trong một lầnnew_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]] for sample in data]
1new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]] for sample in data]
Khung dữ liệu kết quả trông như thế này, với các dòng mới được thay thế
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
2Ghi kết quả vào đĩa
Bây giờ chúng tôi ghi một trong hai khung dữ liệu giống hệt nhau đó vào đĩa. Tôi đặt
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
8 như bạn đã nói rằng bạn không muốn có số hàng trong CSV Chào mọi người. Nhờ sự giúp đỡ tuyệt vời từ diễn đàn này, tôi đã tiến xa hơn nhiều trong dự án của mình trong thời gian ngắn hơn rất nhiều so với dự kiến. Tôi hiện đang cố gắng tìm ra phương pháp tốt nhất để nhập các bản ghi sẽ chiếm phần lớn trang web của tôi
Tôi đang sử dụng mô-đun ImportPagesCSV và phần lớn mô-đun này đang thực hiện chính xác những gì tôi cần. Tôi chỉ gặp phải một số vấn đề.
Vấn đề chính là thiếu ngắt dòng cho trường nội dung. Tôi có thể làm cho các ngắt dòng xuất hiện nếu tôi mở. csv trong excel hoặc notepad, nhưng chúng dường như không tiếp tục khi trang được nhập. Có một cách cụ thể để định dạng. csv sẽ bị ngắt dòng để chuyển?
Một vấn đề khác là khi tôi xuất bản phần nội dung của trang trong mẫu của mình, nội dung của phần nội dung không có thẻ đoạn văn, điều này làm hỏng các kiểu. Nếu tôi vào bản ghi trang và chỉnh sửa trường nội dung theo cách thủ công [chỉ cần nhấp vào nút "nguồn" và sau đó lưu chẳng hạn], thì các thẻ đoạn sẽ xuất hiện, nhưng vì tôi muốn nhập khoảng 600 bản ghi nên tôi hy vọng sẽ không .
Mọi thông tin chi tiết về cách khắc phục những sự cố này đều được đánh giá cao
Liên kết để bình luậnChia sẻ trên các trang web khác
MoritzMất
Đăng ngày 24 tháng 7 năm 2020
MoritzMất
- Các thành viên
- 354
- 1,014
- Vị tríCologne, Đức
- Chia sẻ
Đăng ngày 24 tháng 7 năm 2020
Trong CSV, ngắt dòng được sử dụng để phân tách các hàng riêng lẻ, do đó, ngắt dòng bên trong một ô có thể gây ra sự cố. Tùy thuộc vào trình phân tích cú pháp CSV của bạn, nó có thể dẫn đến lỗi hoàn toàn, nó có thể âm thầm loại bỏ dòng mới hoặc nó có thể xử lý tốt. Theo như tôi biết thì fgetcsv có thể xử lý các dòng mới miễn là ô được trích dẫn đúng. Bạn có thể đăng một ví dụ về CSV của mình không?
Về các thẻ đoạn văn, vấn đề đó là kết quả của việc bỏ qua giao diện và nhập trực tiếp vào cơ sở dữ liệu. Trường vùng văn bản không quan tâm nếu nó chứa HTML hoặc văn bản thông thường với dấu ngắt dòng. Cấu trúc HTML được tạo bởi CK Editor trong quá trình chỉnh sửa, vì vậy nếu bạn không muốn chỉnh sửa tất cả các trang đã nhập theo cách thủ công, bạn sẽ phải chuyển đổi các trường nội dung của mình theo chương trình. Điều này liên quan đến việc chỉ sử dụng str_replace hoặc biểu thức chính quy để thay thế dòng mới bằng thẻ đoạn. Bạn có thể làm điều đó trước khi nhập [bằng cách sửa đổi CSV của bạn], trong khi nhập [rõ ràng là bạn có thể nối ImportPagesCSV. importPageValue] hoặc sau khi nhập [bằng cách sử dụng $pages->find để tìm tất cả các trang đã nhập, lặp qua chúng và thay đổi trường nội dung]. Đây là một mẫu mã nhanh và bẩn
new_data = [[sample[0].replace['\n', weird_char] + weird_char, sample[1]]
for sample in data]
4You can get very sophisticated with that, like converting single line breaks into
tags instead and multiple linebreaks into
tags, but it depends on your requirements and source data.
- 3
Liên kết để bình luậnChia sẻ trên các trang web khác
nhà cái
Đăng ngày 24 tháng 7 năm 2020
nhà cái
- Các thành viên
- 13
- 1
- Tác giả
- Chia sẻ
Đăng ngày 24 tháng 7 năm 2020
Tôi nghi ngờ rằng vấn đề thẻ đoạn là một cái gì đó như thế. Tôi không chắc rằng cà rốt có thể được mô-đun nhập phân tích cú pháp một cách an toàn nhưng nếu bao gồm các thẻ HTML trong chuỗi không phải là vấn đề thì tôi không quá khó để thêm chúng. Đây thực sự có thể là giải pháp cho vấn đề ngắt dòng cùng một lúc