Python ValueError:节点或字符串格式错误:<_ast.Name对象位于

Python ValueError:节点或字符串格式错误:<_ast.Name对象位于,python,abstract-syntax-tree,Python,Abstract Syntax Tree,嗨,伙计们,我总是遇到一个让我害怕的错误,因为我已经准备好了一个类似的代码,它不会产生任何问题。我猜这是因为ast.literal_eval,但在我的另一个地理定位代码中,它工作得很好,唯一的区别是我的工作代码中有8个坐标,而不是2个坐标 from __future__ import print_function from shapely.wkt import loads as load_wkt from shapely.geometry import Point, Polygon import

嗨,伙计们,我总是遇到一个让我害怕的错误,因为我已经准备好了一个类似的代码,它不会产生任何问题。我猜这是因为ast.literal_eval,但在我的另一个地理定位代码中,它工作得很好,唯一的区别是我的工作代码中有8个坐标,而不是2个坐标

from __future__ import print_function
from shapely.wkt import loads as load_wkt
from shapely.geometry import Point, Polygon
import re
import ast
import io

with io.open('sample_test1.txt', encoding="utf-8") as f, io.open('sample_test2.txt.txt', 'w',encoding="utf-8") as g:
        for line in f:
                j = re.sub(r'.*(\[.*\]).*', r'\1', line.rstrip())
                k = ast.literal_eval(j)
                p = Polygon(k)
                c = p.centroid
                print (c, file = g)
f.close()
g.close() 
re.sub捕获的数据如下所示:

[(38.78866,-75.56358),(41.357426,-75.56358),(41.357426,-73.88506),(38.78866,-73.88506)]
这里是原始输入:

703971723738288128,[(39.87181,-75.28028),(40.13792,-75.28028),(40.13792,-74.95571),(39.87181,-74.95571)],,,lmao maybe but I probably listened to TLOP almost everyday so I heard everyone song at least 10 times 😭
703971724577148928,[(37.88661,-79.48765),(39.72362,-79.48765),(39.72362,-74.98628),(37.88661,-74.98628)],,,Whose trying to come out and enjoy this beautiful weather?
703971724635852800,[(39.87181,-75.28028),(40.13792,-75.28028),(40.13792,-74.95571),(39.87181,-74.95571)],21886583,WorkFromHomeQ102Meet5H,I just got home from work now I'm listening to #WorkFromHome 😜 #Q102Meet5H @Q102Philly
我一直在寻找这个错误:

File "polygon_csv.py", line 30, in <module>
    k = ast.literal_eval(j)
  File "...\Anaconda3\lib\ast.py", line 84, in literal_eval
    return _convert(node_or_string)
  File "...\Anaconda3\lib\ast.py", line 55, in _convert
    return tuple(map(_convert, node.elts))
  File "...\Anaconda3\lib\ast.py", line 83, in _convert
    raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Name object at 0x00000203D2EA0F98>
文件“polygon_csv.py”,第30行,在
k=最后的文字值(j)
文件“…\Anaconda3\lib\ast.py”,第84行,文本值
返回\u转换(节点\u或字符串)
文件“..\Anaconda3\lib\ast.py”,第55行,在转换中
返回元组(map(_convert,node.elts))
文件“..\Anaconda3\lib\ast.py”,第83行,在转换中
raise VALUERROR('格式错误的节点或字符串:'+repr(节点))
ValueError:节点或字符串格式不正确:

验证原始输入,此代码适用于我:
导入ast;进口稀土;a=“[(38.78866,-75.56358),(41.357426,-75.56358),(41.357426,-73.88506),(38.78866,-73.88506)];j=re.sub(r'.*(\[.\]).*,r'\1',a.rstrip());ast.literal_eval(j)
;我准备好了。当我在没有ast.literal_eval(j)的情况下执行时,效果很好,但多边形无法使用数据,因此我需要ast.literal_eval(j),但当我将im放入时,出现了错误。你能显示实际的文件输入吗?我编辑了文章,现在你可以看到文本的前3行。