Lỗi phân tích cú pháp: python chữ số không hợp lệ

Lớp lót 1 để lấy mã đánh dấu hoạt động tốt từ dòng lệnh, nhưng tôi gặp lỗi này khi chạy trong tập lệnh

Tôi chạy 1 dòng lấy VÉ từ dòng lệnh, điều đó không gây ra lỗi cho tôi

Nhưng, tôi tin rằng đó là do dữ liệu trống trong mảng?

curl -k -s https://api.earningscalendar.net/?date=20190518
[]
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done

Thông báo lỗi

./earnings.sh ADSK
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
parse error: Invalid numeric literal at line 1, column 6
ADSK, amc is on 20190523

Giải pháp tốt nhất

Để gỡ lỗi, bạn có thể kiểm tra đầu ra do lệnh "curl" tạo ra. Khi tôi chạy nó trong một vòng lặp, không có jq, đầu ra thường là "Thử lại sau", như thể có một số loại điều tiết

Một giải pháp thay thế tương tự để xem xét là chạy một chương trình jq rất cơ bản, e. g

#!/bin/bash
for i in {1..15}
do
    newdate=`/bin/date -v +"$i"d +%Y%m%d`
    echo newdate=$newdate
    curl -k -s "https://api.earningscalendar.net/?date=$newdate" | jq type
done

Giải pháp liên quan

Json - lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 1, cột 9

Ngoài việc hoàn toàn không sử dụng jq, bạn có hai tùy chọn chính

(1) tiền xử lý không phải JSON để biến nó thành JSON

(2) sử dụng tùy chọn dòng lệnh -R, e. g

echo "X-RateLimit-Reset: 1452786798" | jq -R 'split(":")'

[
  "X-RateLimit-Reset",
  " 1452786798"
]

Do đó, nếu bạn biết giá trị sẽ là số

echo "X-RateLimit-Reset: 1452786798" |
  jq -Rc 'split(":") | {(.[0]) : (.[1]|tonumber)}'
{"X-RateLimit-Reset":1452786798}

Lưu ý rằng mặc dù "j" trong jq là dành cho JSON, nhưng jq (với tùy chọn -R) chỉ phù hợp để xử lý văn bản

Json - lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 2, cột 0

Kiểm tra cẩn thận tập lệnh của bạn so với tập lệnh bạn đã đăng trong câu hỏi. Nếu chúng khớp nhau thì câu trả lời rất dễ

Không có "total" : 126 trong chuỗi bạn chuyển đến

#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
0 bởi vì bạn chuyển nó, đầu ra của
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
1 là
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
2

Điều bạn có thể muốn là gửi tới

#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
0 nội dung của tệp
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
2 và công cụ cho việc này là
#!/bin/bash
for i in {1..15}
do
newdate=`/bin/date -v +"$i"d +%Y%m%d`
TICKERD=`curl -k -s https://api.earningscalendar.net/?date=$newdate | jq -r 'map([.ticker, .when] | join(", ")) | join("\n")' | grep -w "$1"`
TICKERA=`echo $TICKERD | cut -d, -f1`
if [ "$TICKERA" == "$1" ]
then
echo $TICKERD "is on" $newdate
exit
fi
done
5

Linux - Phần mềm Diễn đàn này dành cho các vấn đề về Phần mềm
Có một vấn đề cài đặt một chương trình mới?

Lỗi phân tích cú pháp: python chữ số không hợp lệ

Lỗi phân tích cú pháp: python chữ số không hợp lệ
23-03-2019, 04. 39 giờ sáng  #

Trả lời.

Lỗi phân tích cú pháp: python chữ số không hợp lệ

lỗi phân tích cú pháp jq. Chữ số không hợp lệ ở dòng 1, cột 5


Khi tôi đang cố chuyển một chuỗi JSON được phân tích cú pháp thành một biến, tôi nhận được thông tin sau
lỗi phân tích cú pháp. Chữ số không hợp lệ ở dòng 1, cột 5

Dòng mã sau đang đưa ra lỗi đó
z="$(echo curl -s https. //www. quandl. com/api/v3/bộ dữ liệu. 9ZzBbKAs11rAZv. /Users/itadmin/jq -r '[getpath(["dataset","data"])]. dây')"

Trợ giúp được đánh giá cao

Lỗi phân tích cú pháp: python chữ số không hợp lệ
23-03-2019, 04. 42 giờ sáng  #

 

Phân bổ. debian/ubuntu/suse


có lẽ bạn cần loại bỏ tiếng vang đó

1 thành viên thấy bài đăng này hữu ích


LinuxCâu hỏi. org đang tìm kiếm những người quan tâm đến việc viết Bài xã luận, Bài báo, Bài đánh giá, v.v. Nếu bạn muốn đóng góp nội dung, hãy cho chúng tôi biết